使用Maven目录结构生成包含Maven项目源代码的jar?

时间:2012-04-21 23:09:55

标签: java maven maven-2 build

我有一个使用Maven构建的Web应用程序。但是我希望使用具有正确maven目录结构的maven项目生成JAR。我尝试了this但它抛弃了Maven目录结构(src / main / java等)。我的目标是将这个jar分发给其他人,这样他们就可以解压缩并运行mvn eclipse:eclipse并开始处理他们的新Web项目。

2 个答案:

答案 0 :(得分:2)

为什么不使用maven-assembly-plugin ..

的现有描述符
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-assembly-plugin</artifactId>
<version>2.3</version>
<configuration>
  <descriptorRefs>
    <descriptorRef>src</descriptorRef>
  </descriptorRefs>
</configuratio

答案 1 :(得分:0)

使用maven-assembly-plugin。做你想做的事情非常简单。

以下是您对插件的定义:

                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-assembly-plugin</artifactId>
                    <version>2.2.1</version>
                    <executions>
                        <execution>
                            <id>make-distribution</id>
                            <phase>package</phase>
                            <goals>
                                <goal>single</goal>
                            </goals>
                            <configuration>
                                <descriptors>
<descriptor>src/main/assembly/assembly.xml</descriptor>
                                </descriptors>
                            </configuration>
                        </execution>
                    </executions>
                </plugin>

这是你的src / main / assembly / assembly.xml:

<assembly>

        <id>my-project</id>

        <formats>
                <format>zip</format>
        </formats>

        <includeBaseDirectory>true</includeBaseDirectory>

        <fileSets>
                <fileSet>
                        <directory>${basedir}</directory>
                        <includes>
                                <include>**/**</include>
                        </includes>
                        <excludes>
                                <exclude>**/**</exclude>
                        </excludes>
                </fileSet>
        </fileSets>

</assembly>

我没有测试过它,但它大致就是你应该设置它的方式。