1. ホーム
  2. メイヴン

mavenのパッケージング失敗を思い出してください。コンパイルの失敗

2022-02-27 03:43:14
<パス

mavenのパッケージングの失敗を覚えている:コンパイルの失敗

今回の投稿の要点は以下の通りです。

I.mavenパッケージングエラーの詳細

II. ローカルjarパッケージのnexusへのアップロード

III. ラッピング方法

I.mavenパッケージングエラーの詳細

問題の背景:

	Project B is dependent on project A, and both projects are running properly locally.
	Now, after the A project is packaged successfully, the B project is packaged with the following error message:

[ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.8.0:compile (default-compile) on project kafka-ysdw: Compilation failure
[ERROR] /E:/softWare/office/idea/yinsheng-work/kafka_etl/kafka-ysdw/src/main/java/Test.java:[1,41] Package com.ys.bigdata.etl.basic. constant does not exist



[ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.8.0:compile (default-compile) on project kafka-ysdw: Compilation failure
[ERROR] /E:/softWare/office/idea/yinsheng-work/kafka_etl/kafka-ysdw/src/main/java/Test.java:[1,41] Package com.ys.bigdata.etl.basic. constant does not exist
[ERROR] 
[ERROR] -> [Help 1]
LifecycleExecutionException: Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.8.0: Compile (default-compile) on project kafka-ysdw: Compilation failure
/E:/softWare/office/idea/yinsheng-work/kafka_etl/kafka-ysdw/src/main/java/Test.java:[1,41] Package com.ys.bigdata.etl.basic.constant does not exist

    at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:213)
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:154)
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:146)
    at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject (LifecycleModuleBuilder.java:117)
    at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject (LifecycleModuleBuilder.java:81)
    at org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder.build (SingleThreadedBuilder.java:56)
    at org.apache.maven.lifecycle.internal.LifecycleStarter.execute (LifecycleStarter.java:128)
    at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:305)
    at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:192)
    at org.apache.maven.DefaultMaven.execute (DefaultMaven.java:105)
    at org.apache.maven.cli.MavenCli.execute (MavenCli.java:954)
    at org.apache.maven.cli.MavenCli.doMain (MavenCli.java:288)
    at org.apache.maven.cli.MavenCli.main (MavenCli.java:192)
    at sun.reflect.NativeMethodAccessorImpl.invoke0 (Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke (NativeMethodAccessorImpl.java:62)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke (DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke (Method.java:498)
    at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced (Launcher.java:289)
    at org.codehaus.plexus.classworlds.launcher.Launcher.launch (Launcher.java:229)
    at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode (Launcher.java:415)
    at org.codehaus.plexus.classworlds.launcher.Launcher.main (Launcher.java:356)
    at org.codehaus.classworlds.Launcher.main (Launcher.java:47)


エラーのパッケージがプロジェクトAのものであるところ。
使用方法 mvn -e クリーンインストール コマンドを実行します。
以下の詳細なエラーメッセージをご覧ください。

com.ys.bigtata.etl</groupId>
        
kafka_etl_basic</artifactId>
        
1.0</version>
    </dependency>


このエラーは実にシンプルで、BからAへの参照が見つからないというものです。

というのも、うちのmavenは会社のプライベートリポジトリを使っていて、その過程でパッケージングの問題に遭遇してしまったんです。
そこで、よく考えもせず、問題を突き止めると 依存するプロジェクトをプライベートリポジトリにアップロードしていない

疑惑の対象ができたので、試しに プロジェクトのjarパッケージをプライベートリポジトリへ

II. ローカルjarパッケージをnexusにアップロードする

ローカルのjarパッケージをnexusにアップロードするための一般的な方法を2つ説明します。
1つ目は、サードパーティーのjarパッケージをアップロードする一般的な方法を使用することです。
最初の方法は、アップロードする スナップショット型jarパッケージ

通常のサードパーティ製jarパッケージのアップロード

アップロードの流れは以下の通りです。
jarパッケージは、以下のように表示されます。
以下は pom.xml の中で設定されたファイルです。 グループID アーティファクトId とバージョン番号から、対応する依存関係を検索します。
例 私のプロジェクトの グループID は : com.ys.bigtata.etl , アーティファクトId のために。 kafka_etl であれば、その ネクサス 以下、対応するjarパッケージのディレクトリ構造は以下の通りです。

依存関係を参照する場合は、以下を使用します。

snapshots</id>
            
http://10.213.32.58:8081/nexus/content/repositories/snapshots</url>
        </snapshotRepository>
    </distributionManagement>

org.springframework.boot</groupId> spring-boot-maven-plugin</artifactId> <! -- ${spring.version}</version> --> repackage</goal> </goals> </execution> </executions> </plugin> </plugins> </build>