私は他のプロジェクトで使用するためにローカルリポジトリにインストールする必要のあるライブラリを作成しました。mvn installはインストールされたjarの依存関係を提供しませんか?
私はをプロジェクトbasedir
で試しました。私はmaven-install-plugin
を試してみた
:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-install-plugin</artifactId>
<version>2.3.1</version>
<configuration>
<groupId>somegroup</groupId>
<artifactId>someartifact</artifactId>
<version>1.0</version>
<packaging>jar</packaging>
<file>${basedir}/target/someartifact.jar</file>
<generatePom>true</generatePom>
</configuration>
<executions>
<execution>
<id>install-jar-lib</id>
<goals>
<goal>install-file</goal>
</goals>
</execution>
</executions>
</plugin>
jarファイルが正しくインストールされているが、私は別のプロジェクトに依存
<dependency>
<groupId>somegroup</groupId>
<artifactId>someartifact</artifactId>
<version>1.0</version>
</dependency>
を追加したときに、それが遷移の依存性を示すことなく、記載されているいます。
遷移した依存関係のためにNoClassDefFoundError
で失敗したプロジェクトテストを実行すると問題が発生します。
これを修正するにはどうすればよいですか?
EDIT:
親プロジェクトのPOM:
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>somegroup</groupId>
<artifactId>parentartifact</artifactId>
<packaging>jar</packaging>
<version>1.0</version>
<dependencies>
<dependency>
<groupId>thirdpartygroup</groupId>
<artifactId>missingartifact</artifactId>
<version>x.x.x</version>
</dependency>
</dependencies>
<build>
<defaultGoal>compile</defaultGoal>
<sourceDirectory>
${project.basedir}/src/main/java
</sourceDirectory>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.1</version>
<configuration>
<verbose>false</verbose>
<debug>false</debug>
<source>1.6</source>
<target>1.6</target>
</configuration>
</plugin>
</plugins>
<resources>
<resource>
<directory>src/main/resources</directory>
<includes>
<include>**/*</include>
</includes>
</resource>
</resources>
<finalName>parentartifact</finalName>
</build>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
</project>
子プロジェクトのPOM:
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>somegroup</groupId>
<artifactId>someartifact</artifactId>
<packaging>jar</packaging>
<version>1.0</version>
<dependencies>
<dependency>
<groupId>somegroup</groupId>
<artifactId>parentartifact</artifactId>
<version>1.0</version>
</dependency>
</dependencies>
<build>
<defaultGoal>compile</defaultGoal>
<directory>target</directory>
<finalName>${artifactId}-${version}</finalName>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.1</version>
<configuration>
<verbose>false</verbose>
<debug>false</debug>
<source>1.6</source>
<target>1.6</target>
</configuration>
</plugin>
</plugins>
</build>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
</project>
archivaやnexusなどの中央リポジトリを使用しましたか? –
いいえ、私はローカルでのみ –
あなたの基本プロジェクトで 'mvn clean install'を実行すると、あなたの' your_maven_repo/somegroup/someartifact/1.0/'フォルダにjarが見つかりましたか? –