我对maven完全不熟悉。
我有以下maven-assembly文件进行调试。
<assembly>
<id>bin</id>
<formats>
<format>zip</format>
</formats>
<!-- Adds dependencies to zip package under lib directory -->
<dependencySets>
<dependencySet>
<useProjectArtifact>false</useProjectArtifact>
<outputDirectory>lib</outputDirectory>
<unpack>false</unpack>
</dependencySet>
</dependencySets>
<fileSets>
<fileSet>
<directory>${project.build.scriptSourceDirectory}</directory>
<outputDirectory></outputDirectory>
<includes>
<include>startup.*</include>
</includes>
</fileSet>
<!-- adds jar package to the root directory of zip package -->
<fileSet>
<directory>${project.build.directory}</directory>
<outputDirectory></outputDirectory>
<includes>
<include>*.jar</include>
</includes>
</fileSet>
</fileSets>
</assembly>
上述文件的问题是底层应用程序需要从两个相关项目中获取jar。
这两个项目都有一些同名的罐子。
当我执行mvn clean assembly:assembly时,它会将两个项目中的所有jar放到一个文件夹中。
显然,这会覆盖一些jar文件,这就是问题的开始。
由于这个原因,我开始收到ClassNotFound错误。
请帮我整理一下。
另外,我不确定是否定义了变量$ {project.build.scriptSourceDirectory}和$ {project.build.directory}。
我已经搜索了整个源代码,但没有好处。
现在我怀疑这些是特定的maven特定变量,但是我无法理解这一点。
如果您有一些非常棒的maven教程,请提供。
答案 0 :(得分:1)
要开始使用maven,您应首先阅读:http://books.sonatype.com/mvnref-book/reference/public-book.html。
在第二个例子中,您还可以阅读一些示例:http://books.sonatype.com/mvnex-book/reference/public-book.html