我有一个 scala 项目,我正在做一个sbt publish
。它给了我一些伪影:
/maven/repo/com/davez0r/proj_2.10/vers/proj_2.10-vers.jar
/maven/repo/com/davez0r/proj_2.10/vers/proj_2.10-vers.pom
...others...
现在我想在那个罐子里运行一个类:
$ mvn -f /maven/repo/com/davez0r/proj_2.10/vers/ exec:java
-Dexec.mainClass="com.davez0r.App"
这不起作用:
java.io.FileNotFoundException: /maven/repo/com/davez0r/proj_2.10/vers/pom.xml
好的,我可以mvn
指向sbt
生成的pom
文件:
$ mvn -f /maven/repo/com/davez0r/proj_2.10/vers/proj_2.10-vers.pom exec:java
-Dexec.mainClass="com.davez0r.App"
现在它找到了我的依赖项,但没有找到位于pom
旁边的jar
:
java.lang.ClassNotFoundException: com.davez0r.App
我可以创建一个单独的项目,其唯一的依赖项是这组工件,但这似乎没有必要。我将发布此详细信息作为答案。
有没有办法通过mvn
直接从存储库运行?我的pom
中是否有错误设置的内容?
<project>
<modelVersion>4.0</modelVersion>
<groupId>com.davez0r</groupId>
<artifactId>proj_2.10</artifactId>
<packaging>jar</packaging>
<description>proj</description>
<version>vers</version>
<name>proj</name>
<organization>
<name>com.davez0r</name>
</organization>
<dependencies>...</dependencies>
</project>
谢谢!
可以通过创建一个单独的pom.xml
来使其工作:
<project>
<modelVersion>4.0.0</modelVersion>
<repositories>
<url>http://davez0r.com/maven/</url>
...
</repositories>
<groupId>com.davez0r</groupId>
<artifactId>launcher</artifactId>
<version>1</version>
<dependencies>
<dependency>
<groupId>com.davez0r</groupId>
<artifactId>proj_2.10</artifactId>
<version>vers</version>
</dependency>
</dependencies>
</project>
然后我可以在包含上述文件的目录中mvn exec:java
,它运行良好。