仅将文件夹的内容附加到jar

时间:2014-04-22 21:15:32

标签: maven version-control jar maven-3 maven-jar-plugin

我正在使用maven-jar-plugin来生成源jar。

我有以下文件夹结构:

folder/foo/baz/A.java
folder/bar/baz/B.java

我希望sources jar包含以下内容:

baz/A.java
baz/B.java

我使用以下配置:

<plugin>
    <artifactId>maven-jar-plugin</artifactId>
    <version>2.4</version>
        <executions>
            <execution>
                <phase>generate-resources</phase>
                <goals>
                    <goal>jar</goal>
                </goals>
                <configuration>
                    <classesDirectory>folder</classesDirectory>
                    <includes>
                        <include>foo/**</include>
                        <include>bar/**</include>
                    </includes>
                    <finalName>sources</finalName>
                </configuration>
            </execution>
        </executions>
</plugin>

但是这会创建这样的jar:

folder/foo/baz/A.java
folder/bar/baz/B.java

如何修改代码以在jar中获取所需的结构?

1 个答案:

答案 0 :(得分:0)

我无法用maven-jar-plugin来解决这个问题,我也必须使用maven-resources-plugin

<plugin>
    <artifactId>maven-resources-plugin</artifactId>
    <version>2.4.3</version>
    <executions>
        <execution>
            <phase>generate-resources</phase>
            <goals>
                <goal>copy-resources</goal>
            </goals>
            <configuration>
                <outputDirectory>${project.build.directory}/sources/</outputDirectory>
                <resources>
                    <resource>
                        <directory>folder/foo/</directory>
                    </resource>
                    <resource>
                        <directory>folder/bar/</directory>
                    </resource>
                </resources>
            </configuration>
        </execution>
    </executions>
</plugin>

<plugin>
    <artifactId>maven-jar-plugin</artifactId>
    <version>2.4</version>
    <executions>
        <execution>
            <phase>generate-resources</phase>
            <goals>
                <goal>jar</goal>
            </goals>
            <configuration>
                <classesDirectory>${project.build.directory}/sources</classesDirectory>
                <includes>
                    <include>**/*</include>
                </includes>
                <finalName>sources</finalName>
            </configuration>
        </execution>
    </executions>
</plugin>