2017-12-07 21 views
0

が生成されていません。私のMavenのモジュールは、私は次の階層を持っているJAR

webapp-moduleは正常に動作し、warが期待通りに生成され、core-moduleのコードが使用されています。

問題はjar-moduleです。理由はわかりませんが、jar-modulejarを出力していません。(IntelliJ IDEAで)実行することを選択しても、のmainが実行されますが、targetフォルダにはjarはありません。

これを解決してjar-moduleの出力をjarにするにはどうすればよいですか?私は非常にMavenを経験していないのです

は、私の目標は、ローカルGlassfishに同じJerseyコードを使用することができることですし、jarに私は簡単に展開する前にローカルでテストすることができAWS Lambda Serverless Java Containerで展開します。

私の階層の訂正とpomのエラーについても謝意を表します。

my-apppom.xmlpompackagingを持っていますが、core-modulejar-modulejarpackagingを持っているとwebapp-modulewarpackagingを持っています。

私のアプリPOM

<?xml version="1.0" encoding="UTF-8"?> 
<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/xsd/maven-4.0.0.xsd"> 
    <modelVersion>4.0.0</modelVersion> 
    <groupId>com.example.myapp</groupId> 
    <artifactId>myapp</artifactId> 
    <version>1.0-SNAPSHOT</version> 
    <packaging>pom</packaging> 
    <modules> 
     <module>core-module</module> 
    </modules> 
    <properties> 
     <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> 
     <maven.compiler.source>1.8</maven.compiler.source> 
     <maven.compiler.target>1.8</maven.compiler.target> 
    </properties> 
</project> 

コアモジュールのPOM: (私もそれはdidnの、<packaging>pom</packaging>なしjar skipプロパティでそれを試してみましたここ

POMのです作業)

<?xml version="1.0" encoding="UTF-8"?> 
<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/xsd/maven-4.0.0.xsd"> 
    <modelVersion>4.0.0</modelVersion> 
    <parent> 
     <artifactId>myapp</artifactId> 
     <groupId>com.example.myapp</groupId> 
     <version>1.0-SNAPSHOT</version> 
    </parent> 
    <artifactId>webservice-core</artifactId> 
    <packaging>jar</packaging> 
    <modules> 
     <module>../jar-module</module> 
     <module>../webapp-module</module> 
    </modules> 
    <properties> 
     <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> 
     <maven.compiler.source>1.8</maven.compiler.source> 
     <maven.compiler.target>1.8</maven.compiler.target> 
     <maven.deploy.skip>true</maven.deploy.skip> 
     <jar.skipIfEmpty>true</jar.skipIfEmpty> 
     <maven.install.skip>true</maven.install.skip> 
     <javax-ws-rs-version.version>2.1</javax-ws-rs-version.version> 
     <jersey.version>2.26</jersey.version> 
    </properties> 
    <dependencies> 
     <dependency> 
      <groupId>javax.ws.rs</groupId> 
      <artifactId>javax.ws.rs-api</artifactId> 
      <version>${javax-ws-rs-version.version}</version> 
      <scope>provided</scope> 
     </dependency> 
     <dependency> 
      <groupId>org.glassfish.jersey.media</groupId> 
      <artifactId>jersey-media-json-jackson</artifactId> 
      <version>${jersey.version}</version> 
     </dependency> 
    </dependencies> 
</project> 

Webアプリケーション・モジュールの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> 
    <parent> 
     <artifactId>core-module</artifactId> 
     <groupId>com.example.myapp</groupId> 
     <version>1.0-SNAPSHOT</version> 
    </parent> 
    <artifactId>webapp-module</artifactId> 
    <packaging>war</packaging> 
    <name>webapp Maven Webapp</name> 
    <url>http://maven.apache.org</url> 
    <properties> 
     <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> 
     <maven.compiler.source>1.8</maven.compiler.source> 
     <maven.compiler.target>1.8</maven.compiler.target> 
     <jersey.version>2.26</jersey.version> 
    </properties> 
    <dependencies> 
     <dependency> 
      <artifactId>core-module</artifactId> 
      <groupId>com.example.myapp</groupId> 
      <version>1.0-SNAPSHOT</version> 
     </dependency> 
     <dependency> 
      <groupId>org.glassfish.jersey.containers</groupId> 
      <artifactId>jersey-container-servlet</artifactId> 
      <version>${jersey.version}</version> 
      <scope>provided</scope> 
     </dependency> 
    </dependencies> 
    <build> 
     <finalName>webapp</finalName> 
    </build> 
</project> 

ジャーモジュールPOM:私のアプリは、子供がその親プロジェクトポンポンように依存関係の順序を提供している、あなたの親モジュールと休息である

<?xml version="1.0" encoding="UTF-8"?> 
<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/xsd/maven-4.0.0.xsd"> 
    <modelVersion>4.0.0</modelVersion> 
    <parent> 
     <artifactId>core-module</artifactId> 
     <groupId>com.example.myapp</groupId> 
     <version>1.0-SNAPSHOT</version> 
    </parent> 
    <artifactId>jar-module</artifactId> 
    <packaging>jar</packaging> 
    <properties> 
     <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> 
     <maven.compiler.source>1.8</maven.compiler.source> 
     <maven.compiler.target>1.8</maven.compiler.target> 
     <jersey.version>2.26</jersey.version> 
     <maven-shade-plugin.version>3.1.0</maven-shade-plugin.version> 
    </properties> 
    <dependencies> 
     <dependency> 
      <artifactId>core-module</artifactId> 
      <groupId>com.example.myapp</groupId> 
      <version>1.0-SNAPSHOT</version> 
     </dependency> 
     <dependency> 
      <groupId>com.amazonaws.serverless</groupId> 
      <artifactId>aws-serverless-java-container-jersey</artifactId> 
      <version>0.8</version> 
     </dependency> 
    </dependencies> 
    <build> 
     <plugins> 
      <plugin> 
       <groupId>org.apache.maven.plugins</groupId> 
       <artifactId>maven-shade-plugin</artifactId> 
       <version>${maven-shade-plugin.version}</version> 
       <configuration>     <createDependencyReducedPom>false</createDependencyReducedPom> 
       </configuration> 
       <executions> 
        <execution> 
         <phase>package</phase> 
         <goals> 
          <goal>shade</goal> 
         </goals> 
        </execution> 
       </executions> 
      </plugin> 
     </plugins> 
    </build> 
</project> 

答えて

0

プロジェクトをビルドすると、親モジュールで指定したように依存関係が提供されます。

<modules> 
    <module>core-module</module> 
</modules> 

親モジュールと子モジュールのような適切な順序を指定して、ビルドを理解する必要があります。

0

私のアプリ

<modules> 
    <module>core-module</module> 
    <module>jar-module</module> 
    <module>web-module</module> 
</modules> 

コアモジュール

no <modules> 

これは、ディレクトリ階層によってミラークリーン階層、です。

moduleとコンテナの間には相違があり、parentの関係やその他の微妙な違いがあります。だから、おそらくこれは役に立ちます。

+0

私はそれが最初に持っていたセットアップだと思うし、それも瓶を生成していなかった...しかし、私は後でそれを再度テストします...それはかなり遅いです、私はちょうど前に寝る必要があります私はそれを試してください – mFeinstein

+1

エラーが見つかりました、私はIntelliJ IDEAを使用して、特別な "Mavenのプロジェクト"ウィンドウがアーティファクトを 'パッケージ化するために使用する必要があります。 – mFeinstein

関連する問題