如何避免覆盖maven-assembly文件中的jar文件

时间:2013-10-10 23:24:02

标签: maven-2 maven-assembly-plugin

我对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教程,请提供。

1 个答案:

答案 0 :(得分:1)

要开始使用maven,您应首先阅读:http://books.sonatype.com/mvnref-book/reference/public-book.html

在第二个例子中,您还可以阅读一些示例:http://books.sonatype.com/mvnex-book/reference/public-book.html