0

Mavenでビルドされたサンプルコードを入手したプロジェクトに取り組んでいます。pom.xmlには

<plugin>
    <artifactId>maven-assembly-plugin</artifactId>
    <version>2.3</version>
    <configuration>
        <archive>
            <manifest>
                <mainClass>com.xxx.research.control.ControlClass</mainClass>
                <addClasspath>true</addClasspath>
                <classpathPrefix>lib/</classpathPrefix>
            </manifest>
        </archive>
        <descriptorRefs>
            <descriptorRef>jar-with-dependencies</descriptorRef>
        </descriptorRefs>
    </configuration>
    <executions>
        <execution>
            <id>make-assembly</id>
            <phase>package</phase>
            <goals>
                <goal>single</goal>
            </goals>
        </execution>
    </executions>
</plugin>

今、私は自分のコードを書きました、そして私はmavenに不慣れなので、このpomを再利用しようとしています。私のコードがあるので、に変更しようとしまし<mainClass>com.xxx.research.control.Main</mainClass>た。<mainClass>project.Main</mainClass>Eclipseでは、sam sourceフォルダーにありますが、パッケージ「project」にあります。

元のpomを使用してMavenクリーンインストールを実行すると、正常に生成されるjarを実行できますが、コードをビルドするように変更すると、が取得されException in thread "main" java.lang.NoClassDefFoundError: project/Mainます。

ここで何が欠けていますか?

前もって感謝します。

4

1 に答える 1

1

デフォルトでは、mavenはsrc / main / javaフォルダーでソースコードを検索するため、メインクラスをsrc / main / java / project/Main.javaに配置する必要があります。

Mavenのマニュアルを読んでください。また、クラスパスに含まれるリソースと単体テスト用のフォルダー構造もあります。

  • src / main / resources
  • src / test / java
  • src / test / resources
于 2012-11-28T23:32:00.483 に答える