Maven 2 maven汇编插件入门时遇到问题

Maven 2 maven汇编插件入门时遇到问题,maven-2,maven-assembly-plugin,Maven 2,Maven Assembly Plugin,很抱歉,我在这里听起来很无知,但我对Maven是新手,我一直在用我的头撞击一些我相信很简单的东西 他们说: […]一个项目可以生成一个ZIP程序集,其中包含根目录中项目的JAR工件、lib/目录中的运行时依赖项,以及一个用于启动独立应用程序的shell脚本 这正是我想做的!但我似乎无法实现 我的POM如下: <project> <modelVersion>4.0.0</modelVersion> <groupId>com.anearal

很抱歉,我在这里听起来很无知,但我对Maven是新手,我一直在用我的头撞击一些我相信很简单的东西

他们说:

[…]一个项目可以生成一个ZIP程序集,其中包含根目录中项目的JAR工件、lib/目录中的运行时依赖项,以及一个用于启动独立应用程序的shell脚本

这正是我想做的!但我似乎无法实现

我的POM如下:

<project>
   <modelVersion>4.0.0</modelVersion>
   <groupId>com.anearalone</groupId>
   <artifactId>myapp</artifactId>
   <version>0.0.1-SNAPSHOT</version>
   <packaging>jar</packaging>
   [...]
   <build>
      <finalName>myapp</finalName>
      <plugins>
         <plugin>
         <groupId>org.apache.maven.plugins</groupId>
         <artifactId>maven-assembly-plugin</artifactId>
         <version>2.2.1</version>
         <executions>
            <execution>
               <id>make-assembly</id>
               <phase>package</phase>
               <goals>
                  <goal>single</goal>
               </goals>
               <configuration>
                  <descriptors>
                     <descriptor>src/main/assemble/dist.xml</descriptor>
                  </descriptors>
                  <archive>
                     <manifest>
                        <mainClass>com.anearalone.myapp.CLI</mainClass>
                        <addClasspath>true</addClasspath>
                        <classpathPrefix>lib/</classpathPrefix>
                     </manifest>
                  </archive>
               </configuration>
            </execution>
         </executions>
      </plugin>
   </plugins>
</build>
[...]
</project>
。。。事实上,我的工件不在存档中,并且仍然没有添加到
MANIFEST.MF
的条目


有没有人有时间帮助初学者?

如果我正确理解了您的问题,您的ZIP创建是正确的,但是其中包含的
my-app-0.0.1-SNAPSHOT
(以及直接位于
target/
目录中的JAR)没有将您的主类包含在
MANIFEST.MF
文件中

事实上,
assembly
插件并不专用于执行这样的任务。这是的任务,它提供了在
MANIFEST.MF
中指示的方法。您只需在当前的
pom.xml
中添加此配置即可:

<plugins>
  <plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-jar-plugin</artifactId>
    ...
    <configuration>
      <archive>
        <manifest>
          <addClasspath>true</addClasspath>
          <mainClass>my.app.MainClass</mainClass>
        </manifest>
      </archive>
    </configuration>
  </plugin>
</plugins>

org.apache.maven.plugins

,或到。

啊,太好了!我应该从上面的前几行推断出这一点。非常感谢!
[WARNING] Cannot include project artifact: com.anearalone:myapp:pom:0.0.1-SNAPSHOT; it doesn't have an associated file or directory.
[WARNING] The following patterns were never triggered in this artifact inclusion filter:
o  'com.anearalone:myapp'
<plugins>
  <plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-jar-plugin</artifactId>
    ...
    <configuration>
      <archive>
        <manifest>
          <addClasspath>true</addClasspath>
          <mainClass>my.app.MainClass</mainClass>
        </manifest>
      </archive>
    </configuration>
  </plugin>
</plugins>