0

maven を使用して実行可能な jar を作成しようとしています。m2e Eclipseプラグインを使用してmavenに変換したJava Webプロジェクトがありました。実行可能な jar を作成するために、私の pom.xml は次のように構成されています。

<build>
    <sourceDirectory>src</sourceDirectory>
    <resources>
      <resource>
        <directory>src</directory>
        <excludes>
          <exclude>**/*.java</exclude>
        </excludes>
      </resource>
    </resources>

    <plugins>
      <plugin>
        <artifactId>maven-compiler-plugin</artifactId>
        <version>3.1</version>
        <configuration>
          <source>1.7</source>
          <target>1.7</target>
        </configuration>
      </plugin>

    <!--  to create a runnable jar -->  
      <plugin>
      <artifactId>maven-assembly-plugin</artifactId>
      <configuration>
        <archive>
          <manifest>
            <mainClass>com.test.main</mainClass> // main being main.java which has my main method
          </manifest>
        </archive>
        <descriptorRefs>
          <descriptorRef>jar-with-dependencies</descriptorRef>
        </descriptorRefs>
      </configuration>
    </plugin>

    </plugins>
  </build>

次に、(編集構成)タブで edit->run as-> を実行し、「パッケージ」を目標タブに追加しました。プロジェクトは正常にビルドされますが、jar を実行しようとすると、「メイン マニフェストが見つかりません」というメッセージが表示され続けます。

4

1 に答える 1

1

プラグインをライフサイクル フェーズにバインドできなかったと思います。

http://maven.apache.org/plugins/maven-assembly-plugin/usage.html#Execution:_Building_an_Assembly

<project>
  [...]
  <build>
    [...]
    <plugins>
      <plugin>
        <artifactId>maven-assembly-plugin</artifactId>
        <version>2.4</version>
        <configuration>
          <descriptorRefs>
            <descriptorRef>jar-with-dependencies</descriptorRef>
          </descriptorRefs>
          <archive>
             <manifest>
                <mainClass>com.test.main</mainClass> // main being main.java which has my main method
             </manifest>
          </archive>
        </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>
      [...]
</project>
于 2013-08-21T14:32:06.080 に答える