2017-05-30 7 views
4

私は基本的なSpringBootアプリケーションを持っています。 Spring Initializer、組み込みTomcat、Thymeleafテンプレートエンジン、およびパッケージを実行可能なJARファイルとして使用しています。 は、Spring Bootを使用したマルチモジュールプロジェクトです。プロジェクトには3つのモジュールがあります。ここで ここでは、親モジュールのpom.xmlSpringBoot:マルチモジュールプロジェクトを実行中

<?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> 
     <groupId>org.springframework.boot</groupId> 
     <artifactId>spring-boot-starter-parent</artifactId> 
     <version>1.5.3.RELEASE</version> 
     <relativePath /> <!-- lookup parent from repository --> 
    </parent> 

    <groupId>com.tdkcloud</groupId> 
    <artifactId>tdk-cloud</artifactId> 
    <version>0.0.2-SNAPSHOT</version> 
    <packaging>pom</packaging> 

    <modules> 
     <module>tdk-core</module> 
     <module>tdk-batch</module> 
     <module>tdk-web</module> 
    </modules> 


    <dependencies> 
     <!-- Spring Boot dependencies --> 
     <dependency> 
      <groupId>org.springframework.boot</groupId> 
      <artifactId>spring-boot-starter</artifactId> 
     </dependency> 
     <dependency> 
      <groupId>org.springframework.boot</groupId> 
      <artifactId>spring-boot-starter-data-jpa</artifactId> 
     </dependency> 

     <!-- Test dependencies --> 
     <dependency> 
      <groupId>org.springframework.boot</groupId> 
      <artifactId>spring-boot-starter-test</artifactId> 
      <scope>test</scope> 
     </dependency> 
     <dependency> 
      <groupId>uk.co.jemos.podam</groupId> 
      <artifactId>podam</artifactId> 
      <version>7.0.5.RELEASE</version> 
      <scope>test</scope> 
     </dependency> 


     <!-- Logging dependencies --> 
     <dependency> 
      <groupId>ch.qos.logback</groupId> 
      <artifactId>logback-classic</artifactId> 
     </dependency> 

     <!-- Email dependencies --> 
     <dependency> 
      <groupId>org.springframework.boot</groupId> 
      <artifactId>spring-boot-starter-mail</artifactId> 
     </dependency> 

     <!-- Security dependencies --> 
     <dependency> 
      <groupId>org.springframework.boot</groupId> 
      <artifactId>spring-boot-starter-security</artifactId> 
     </dependency> 

     <!-- Spring data --> 
     <dependency> 
      <groupId>com.h2database</groupId> 
      <artifactId>h2</artifactId> 
     </dependency> 



    </dependencies> 

</project> 

モジュールコア

<?xml version="1.0"?> 
<project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd" xmlns="http://maven.apache.org/POM/4.0.0" 
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> 

    <modelVersion>4.0.0</modelVersion> 

    <parent> 
     <groupId>com.tdkcloud</groupId> 
     <artifactId>tdk-cloud</artifactId> 
     <version>0.0.2-SNAPSHOT</version> 
    </parent> 


    <groupId>com.tdkcloud.core</groupId> 
    <artifactId>tdk-core</artifactId> 
    <packaging>jar</packaging>  



    <properties> 
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> 
    <java.version>1.8</java.version> 
    </properties> 

    <dependencies> 


     <!-- Hibernate dependencies --> 
     <dependency> 
      <groupId>org.hibernate</groupId> 
      <artifactId>hibernate-validator</artifactId> 
     </dependency> 

     <dependency> 
      <groupId>com.googlecode.libphonenumber</groupId> 
      <artifactId>libphonenumber</artifactId> 
      <version>8.4.3</version> 
     </dependency> 

     <dependency> 
      <groupId>commons-codec</groupId> 
      <artifactId>commons-codec</artifactId> 
      <!-- <version>1.10</version> --> 
     </dependency> 

     <dependency> 
      <groupId>com.fasterxml.jackson.core</groupId> 
      <artifactId>jackson-core</artifactId> 
      <!-- <version>2.9.0.pr3</version> --> 
     </dependency> 

     <dependency> 
      <groupId>com.fasterxml.jackson.core</groupId> 
      <artifactId>jackson-annotations</artifactId> 
      <!-- <version>2.9.0.pr3</version> --> 
     </dependency> 

     <dependency> 
      <groupId>com.fasterxml.jackson.core</groupId> 
      <artifactId>jackson-databind</artifactId>  
     </dependency> 

     <dependency> 
     <groupId>org.codehaus.jackson</groupId> 
     <artifactId>jackson-mapper-asl</artifactId> 
     <version>1.9.9</version> 
</dependency> 


    </dependencies> 

</project> 

、ここでモジュールのWeb:

<?xml version="1.0"?> 
<project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd" xmlns="http://maven.apache.org/POM/4.0.0" 
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> 

    <modelVersion>4.0.0</modelVersion> 

    <parent> 
     <groupId>com.tdkcloud</groupId> 
     <artifactId>tdk-cloud</artifactId> 
     <version>0.0.2-SNAPSHOT</version> 
    </parent> 

    <groupId>com.tdkcloud.web</groupId> 
    <artifactId>tdk-web</artifactId> 
    <packaging>jar</packaging> 


    <properties> 
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> 
    <java.version>1.8</java.version> 
    <start-class>com.tdkcloud.TdkCloudApplication</start-class> 
    </properties> 

    <dependencies> 

     <!-- tdk-core dependencies --> 
     <dependency> 
      <groupId>com.tdkcloud.core</groupId> 
      <artifactId>tdk-core</artifactId> 
      <version>0.0.2-SNAPSHOT</version>   
     </dependency> 

     <dependency> 
      <groupId>org.springframework.boot</groupId> 
      <artifactId>spring-boot-starter-web</artifactId> 
     </dependency> 

     <dependency> 
      <groupId>org.springframework.boot</groupId> 
      <artifactId>spring-boot-starter-thymeleaf</artifactId> 
     </dependency> 


     <!-- Webjars for JQuery and Bootstrap --> 
     <dependency> 
      <groupId>org.webjars</groupId> 
      <artifactId>bootstrap</artifactId> 
      <version>3.3.7-1</version> 
     </dependency> 
     <dependency> 
      <groupId>org.webjars</groupId> 
      <artifactId>jquery</artifactId> 
      <version>3.2.0</version> 
     </dependency> 

     <!-- Spring Security --> 
     <dependency> 
      <groupId>org.thymeleaf.extras</groupId> 
      <artifactId>thymeleaf-extras-springsecurity4</artifactId> 
      <!-- <version>3.0.2.RELEASE</version> --> 
     </dependency> 


    </dependencies> 

    <build> 
     <plugins> 
      <plugin> 
       <groupId>org.apache.maven.plugins</groupId> 
       <artifactId>maven-jar-plugin</artifactId> 
       <configuration> 
        <archive> 
         <manifest> 
          <mainClass>com.tdkcloud.TdkCloudApplication</mainClass> 
         </manifest> 
        </archive> 
       </configuration> 
      </plugin> 
      <plugin> 
       <groupId>org.springframework.boot</groupId> 
       <artifactId>spring-boot-maven-plugin</artifactId> 
      </plugin> 
     </plugins> 
    </build> 

    <!-- <build> 
     <plugins> 
      <plugin> 
       <groupId>org.springframework.boot</groupId> 
       <artifactId>spring-boot-maven-plugin</artifactId> 
      </plugin> 
     </plugins> 
    </build> --> 


</project> 

私が使用してすべてのモジュールを生成し、親のルートから:

mvn clean package 

しかし、問題はtdk-web-0.0.2-SNAPSHOT.jartdk-core-0.0.2-SNAPSHOT.jarが含まれていませんし、それはここではMavenの結果、起動

に失敗したということです。

MacBook-Pro-de-nunito:tdk-cloud calzada$ mvn clean package -Dmaven.test.skip=true 
[INFO] Scanning for projects... 
[INFO] ------------------------------------------------------------------------ 
[INFO] Reactor Build Order: 
[INFO] 
[INFO] tdk-cloud 
[INFO] tdk-core 
[INFO] tdk-batch 
[INFO] tdk-web 
[INFO]                   
[INFO] ------------------------------------------------------------------------ 
[INFO] Building tdk-cloud 0.0.2-SNAPSHOT 
[INFO] ------------------------------------------------------------------------ 
[INFO] 
[INFO] --- maven-clean-plugin:2.6.1:clean (default-clean) @ tdk-cloud --- 
[INFO]                   
[INFO] ------------------------------------------------------------------------ 
[INFO] Building tdk-core 0.0.2-SNAPSHOT 
[INFO] ------------------------------------------------------------------------ 
[WARNING] The POM for com.h2database:h2:jar:1.4.194 is missing, no dependency information available 
[INFO] 
[INFO] --- maven-clean-plugin:2.6.1:clean (default-clean) @ tdk-core --- 
[INFO] Deleting /Users/calzada/Development/J2EE/workspace-sts-3.8.4.RELEASE/tdk-cloud/tdk-core/target 
[INFO] 
[INFO] --- maven-resources-plugin:2.6:resources (default-resources) @ tdk-core --- 
[INFO] Using 'UTF-8' encoding to copy filtered resources. 
[INFO] Copying 1 resource 
[INFO] Copying 1 resource 
[INFO] 
[INFO] --- maven-compiler-plugin:3.1:compile (default-compile) @ tdk-core --- 
[INFO] Changes detected - recompiling the module! 
[INFO] Compiling 52 source files to /Users/calzada/Development/J2EE/workspace-sts-3.8.4.RELEASE/tdk-cloud/tdk-core/target/classes 
[INFO] 
[INFO] --- maven-resources-plugin:2.6:testResources (default-testResources) @ tdk-core --- 
[INFO] Not copying test resources 
[INFO] 
[INFO] --- maven-compiler-plugin:3.1:testCompile (default-testCompile) @ tdk-core --- 
[INFO] Not compiling test sources 
[INFO] 
[INFO] --- maven-surefire-plugin:2.18.1:test (default-test) @ tdk-core --- 
[INFO] Tests are skipped. 
[INFO] 
[INFO] --- maven-jar-plugin:2.6:jar (default-jar) @ tdk-core --- 
[INFO] Building jar: /Users/calzada/Development/J2EE/workspace-sts-3.8.4.RELEASE/tdk-cloud/tdk-core/target/tdk-core-0.0.2-SNAPSHOT.jar 
[INFO]                   
[INFO] ------------------------------------------------------------------------ 
[INFO] Building tdk-batch 0.0.2-SNAPSHOT 
[INFO] ------------------------------------------------------------------------ 
[INFO] 
[INFO] --- maven-clean-plugin:2.6.1:clean (default-clean) @ tdk-batch --- 
[INFO] Deleting /Users/calzada/Development/J2EE/workspace-sts-3.8.4.RELEASE/tdk-cloud/tdk-batch/target 
[INFO] 
[INFO] --- maven-resources-plugin:2.6:resources (default-resources) @ tdk-batch --- 
[INFO] Using 'UTF-8' encoding to copy filtered resources. 
[INFO] skip non existing resourceDirectory /Users/calzada/Development/J2EE/workspace-sts-3.8.4.RELEASE/tdk-cloud/tdk-batch/src/main/resources 
[INFO] skip non existing resourceDirectory /Users/calzada/Development/J2EE/workspace-sts-3.8.4.RELEASE/tdk-cloud/tdk-batch/src/main/resources 
[INFO] 
[INFO] --- maven-compiler-plugin:3.1:compile (default-compile) @ tdk-batch --- 
[INFO] Changes detected - recompiling the module! 
[INFO] Compiling 1 source file to /Users/calzada/Development/J2EE/workspace-sts-3.8.4.RELEASE/tdk-cloud/tdk-batch/target/classes 
[INFO] 
[INFO] --- maven-resources-plugin:2.6:testResources (default-testResources) @ tdk-batch --- 
[INFO] Not copying test resources 
[INFO] 
[INFO] --- maven-compiler-plugin:3.1:testCompile (default-testCompile) @ tdk-batch --- 
[INFO] Not compiling test sources 
[INFO] 
[INFO] --- maven-surefire-plugin:2.18.1:test (default-test) @ tdk-batch --- 
[INFO] Tests are skipped. 
[INFO] 
[INFO] --- maven-jar-plugin:2.6:jar (default-jar) @ tdk-batch --- 
[INFO] Building jar: /Users/calzada/Development/J2EE/workspace-sts-3.8.4.RELEASE/tdk-cloud/tdk-batch/target/tdk-batch-0.0.2-SNAPSHOT.jar 
[INFO]                   
[INFO] ------------------------------------------------------------------------ 
[INFO] Building tdk-web 0.0.2-SNAPSHOT 
[INFO] ------------------------------------------------------------------------ 
[INFO] 
[INFO] --- maven-clean-plugin:2.6.1:clean (default-clean) @ tdk-web --- 
[INFO] Deleting /Users/calzada/Development/J2EE/workspace-sts-3.8.4.RELEASE/tdk-cloud/tdk-web/target 
[INFO] 
[INFO] --- maven-resources-plugin:2.6:resources (default-resources) @ tdk-web --- 
[INFO] Using 'UTF-8' encoding to copy filtered resources. 
[INFO] Copying 0 resource 
[INFO] Copying 339 resources 
[INFO] 
[INFO] --- maven-compiler-plugin:3.1:compile (default-compile) @ tdk-web --- 
[INFO] Changes detected - recompiling the module! 
[INFO] Compiling 25 source files to /Users/calzada/Development/J2EE/workspace-sts-3.8.4.RELEASE/tdk-cloud/tdk-web/target/classes 
[INFO] 
[INFO] --- maven-resources-plugin:2.6:testResources (default-testResources) @ tdk-web --- 
[INFO] Not copying test resources 
[INFO] 
[INFO] --- maven-compiler-plugin:3.1:testCompile (default-testCompile) @ tdk-web --- 
[INFO] Not compiling test sources 
[INFO] 
[INFO] --- maven-surefire-plugin:2.18.1:test (default-test) @ tdk-web --- 
[INFO] Tests are skipped. 
[INFO] 
[INFO] --- maven-jar-plugin:2.6:jar (default-jar) @ tdk-web --- 
[INFO] Building jar: /Users/calzada/Development/J2EE/workspace-sts-3.8.4.RELEASE/tdk-cloud/tdk-web/target/tdk-web-0.0.2-SNAPSHOT.jar 
[INFO] 
[INFO] --- spring-boot-maven-plugin:1.5.3.RELEASE:repackage (default) @ tdk-web --- 
[INFO] ------------------------------------------------------------------------ 
[INFO] Reactor Summary: 
[INFO] 
[INFO] tdk-cloud ....................................... SUCCESS [ 0.105 s] 
[INFO] tdk-core ........................................ SUCCESS [ 1.634 s] 
[INFO] tdk-batch ....................................... SUCCESS [ 0.114 s] 
[INFO] tdk-web ......................................... SUCCESS [ 1.506 s] 
[INFO] ------------------------------------------------------------------------ 
[INFO] BUILD SUCCESS 
[INFO] ------------------------------------------------------------------------ 
[INFO] Total time: 3.663 s 
[INFO] Finished at: 2017-05-30T05:37:04+02:00 
[INFO] Final Memory: 47M/539M 
[INFO] ------------------------------------------------------------------------ 
MacBook-Pro-de-nunito:tdk-cloud calzada$ 

は、これは私が得たエラーです:

*************************** 
APPLICATION FAILED TO START 
*************************** 

Description: 

Field emailService in com.tdkcloud.web.controllers.AppErrorController required a bean of type 'com.tdkcloud.backend.service.EmailService' that could not be found. 


Action: 

Consider defining a bean of type 'com.tdkcloud.backend.service.EmailService' in your configuration. 

私は瓶を解凍し、コアモジュールのクラスはありません

モジュールウェブに提案コードを追加:

<plugin> 
        <artifactId>maven-dependency-plugin</artifactId> 
        <executions> 
         <execution> 
          <phase>install</phase> 
          <goals> 
           <goal>copy-dependencies</goal> 
          </goals> 
          <configuration> 
           <outputDirectory>${project.build.directory}/lib</outputDirectory> 
          </configuration> 
         </execution> 
        </executions> 
       </plugin> 
は、私は次のエラーがあります: Error resolving template "/tdk/login/login", template might not exist or might not be accessible by any of the configured Template Reso

をしかしテンプレートがあります:あなたは、コアモジュールでversion欠けている enter image description here

+0

を助けることを願って、悪い何かが 'EmailService'とうまくいきません。アプリケーションのプロパティに 'spring.mail。*'設定がありますか?そうでない場合は、提供してください。 –

+0

EmailService.javaのコードを投稿できますか? – Jobin

+0

'EmailService'クラスの上に' @ Service'アノテーションがありますか? – harshavmb

答えて

0

最近私は、プロジェクト構造/レイアウトの1つをmavenマルチモジュールプロジェクトとして実装しようとしました。

私はスプリングガイドリンク以下に続く

が、これはエラーの説明によると、あなたと他の人 Official Spring multi module project link

0

。以下のコアモジュールを追加してください。

<version>0.0.2-SNAPSHOT</version> 

となります。

<groupId>com.tdkcloud.core</groupId> 
<artifactId>tdk-core</artifactId> 
<packaging>jar</packaging> 
<version>0.0.2-SNAPSHOT</version> 
+0

同じ結果が出ました:私はこの警告を受けています:バージョンは親バージョンと重複しています: –

+0

'mvn clean install 'を実行していることを確認してください。 – Jobin

+0

mvn clean install -Dmaven.test.skip = true –

0

これを追加してください。

 <plugin> 
      <groupId>org.springframework.boot</groupId> 
      <artifactId>spring-boot-maven-plugin</artifactId> 
      <executions> 
       <execution> 
        <goals> 
         <goal>repackage</goal> 
        </goals> 
        <configuration> 
         <classifier>exec</classifier> 
        </configuration> 
       </execution> 
      </executions> 
     </plugin> 

Repackages existing JAR and WAR archives so that they can be executed from the command line using java -jar. With layout=NONE can also be used simply to package a JAR with nested dependencies (and no main class, so not executable).

ガットthis

0

から私は以前、同じ問題に直面していました。私はあなたが爆発した形で瓶を運んでいないと推測しています。このプラグインを使用すると、バンドル内のjarファイルをプルして.original jarファイルを実行する必要があります。

これは、jar内でpomに定義したすべての依存関係をバンドルします。お役に立てれば。

1
  <plugin> 
       <groupId>org.springframework.boot</groupId> 
       <artifactId>spring-boot-maven-plugin</artifactId> 
       <configuration> 
        <executable>true</executable> 
       </configuration> 
       <executions> 
        <execution> 
         <goals> 
          <goal>repackage</goal> 
         </goals> 
        </execution> 
       </executions> 
      </plugin> 

実行可能なJarを作成するためにこれを提案します。

1

あなたの@ComponentScan注釈がないか、間違っていると思います。 (例:@ComponentScan({"com.tdkcloud。。。ウェブ "}))com.tdkcloud.backendパッケージでサービスを見つけることができませんそれとも@Service注釈があなたのEmailServiceから欠落している

だから、これを解決するために、あなたのコードは、このような何かを見てする必要があります:

App.java(又はWebconfig.java)

@Configuration 
@EnableWebMvc 
@ComponentScan({"com.tdkcloud"}) 
@SpringBootApplication 
public class App { 
    ... 
} 

EmailService.java

public interface EmailService { 
    ... 
} 

EmailServiceImpl.java

@Service 
public class EmailServiceImpl { 
    ... 
} 
関連する問題