0

在 netbeans 7.2.1 中,我正在尝试使用 maven 程序集插件构建一个具有依赖关系的可执行 jar。它在过去有效,但现在在构建 jar 时,它包含除了项目本身的类之外的所有依赖项。

运行clean install assembly:single时目标目录包含 2 个 jar,icfStatusPage-1.0-SNAPSHOT-jar-with-dependencies.jar 和 icfStatusPage-1.0-SNAPSHOT.jar。一个包含所有依赖项,另一个包含所有类。

具有依赖关系的 jar 的构建似乎没问题。(缺少的 pom 文件是手动安装的工件)。

[assembly:single]
Missing POM for cf:conn-fwk-int:jar:1.0
Missing POM for cf:conn-fwk:jar:1.0
Building jar: /Users/petervannes/NetBeansProjects2/icfStatusPage/target/icfStatusPage-1.0-SNAPSHOT-jar-with-dependencies.jar
------------------------------------------------------------------------
BUILD SUCCESS
------------------------------------------------------------------------

插件配置片段;

<build>
    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-compiler-plugin</artifactId>
            <version>2.4</version>
            <configuration>
                <source>1.6</source>
                <target>1.6</target>
                <debug>false</debug>
            </configuration>
        </plugin>
        <plugin>
            <artifactId>maven-assembly-plugin</artifactId>
            <version>2.4</version>
            <configuration>
                <archive>
                    <manifest>
                        <addClasspath>true</addClasspath>
                        <mainClass>nl.organization.icfstatuspage.IcfStatus</mainClass>
                    </manifest>
                </archive>
                <descriptorRefs>
                    <descriptorRef>jar-with-dependencies</descriptorRef>
                </descriptorRefs>
            </configuration>
        </plugin>
    </plugins>

</build>
<properties>

一直在谷歌搜索并尝试多种选择,但到目前为止都没有成功。欢迎任何帮助!

干杯,

彼得

4

1 回答 1

1

我被困在与您相同的地方并且无法找到答案,所以即使这是一个较旧的问题,因为当我被困时它仍然出现在搜索中,这就是答案。我认为您需要在该<executions>部分中添加。我对 Maven 几乎一无所知,我只是想让它工作......这似乎可以解决问题。

    <plugin> 
      <artifactId>maven-assembly-plugin</artifactId> 
      <version>2.4</version>
      <configuration> 
          <archive> 
              <manifest> 
                  <addClasspath>true</addClasspath> 
                  <mainClass>nl.organization.icfstatuspage.IcfStatus</mainClass> 
                  <addDefaultImplementationEntries>true</addDefaultImplementationEntries> 
                  <addDefaultSpecificationEntries>true</addDefaultSpecificationEntries> 
              </manifest> 
          </archive> 
          <descriptorRefs> 
              <descriptorRefs>jar-with-dependencies</descriptorRefs> 
          </descriptorRefs> 
      </configuration> 
      <executions>
          <execution>
              <id>make-assembly</id> <!-- this is used for inheritance merges -->
              <phase>package</phase> <!-- bind to the packaging phase -->
              <goals>
                  <goal>single</goal>
              </goals>
          </execution>
      </executions>
  </plugin> 

我从关于maven-assembly-plugin usage的 Maven 文档中获得了该部分。

于 2013-11-08T17:14:41.293 回答