2016-11-22 50 views
0

設定:Eclipse Neon.1。 BuildShipプラグイン1.0.21。 Gradle 3.2。 Tomcat 8.0.33。Eclipse WTP + Gradle Buildshipはすべてのプロジェクト依存関係を展開していません

プロジェクト構造:

  • CmbProduct
    • 共通
    • CommonServer
    • モデル
    • CaBridge
    • WebAppの

他の複数のプロジェクトに依存するWebサービスアプリケーションプロジェクト(WebApp)があります。

の.metadata/.plugins/org.eclipse.wst:私は展開とTomcat、 "モデル" からのみModel.jar経由WebAppのを実行するためのEclipse WST/WTPを使用する場合のようにTomcatのWSTのランタイムディレクトリに展開されています.server.core/tmp1/wtpwebapp/WEB-INF/lib/Model.jar

他のすべての依存関係は、上記の同じディレクトリに正しくデプロイされているようです。

ビルドシップを使用するようにEclipseを変更したときにこれが壊れました。以前はEclipse STS(Spring)プラグインを使用していましたが、うまくいきました。私は最初eclipse.wtp.libConfigurations部なしで試み上記の例では

apply plugin: 'war' 
apply plugin: 'eclipse-wtp' 

dependencies { 
    compile project(":Common") 
    compile project(":Model") 
    compile project(":CommonServer") 
    compile project(":CaBridge") 
    ... 
} 

eclipse { 
    wtp { 
     component { 
      // Configure the <Context path="..."/> in server.xml 
      contextPath = '/console' 

      // dependencies to mark as deployable with lib folder deploy path 
      libConfigurations += [ project(":MagniCompCommon").configurations.runtime ] 
     } 
    } 
} 

:ここ

は、Webプロジェクト(WebAppの)build.gradleあります。私は問題を修正するためにそれを追加しようとしましたが効果はありません。はい、私は 'gradle eclipseWtp'を実行してから、その変更を加えた後にサーバーエントリから 'WebApp'アプリケーションを追加/削除します。

私はEclipse - > WebApp - >プロパティ - > Javaビルドパス - >ライブラリに行き、 "Web App Libraries"を見れば "モデル"が見えますが他のプロジェクトは見えません。私が "プロジェクトと外部の依存関係"を見ると、私はすべてのプロジェクトをリストアップしています。ここで

は(作業)モデルのbuild.gradleである:ここで

apply plugin: 'eclipse-wtp' 

dependencies { 
    compile project(":MagniCompCommon") 
} 

は共通のためのbuild.gradle(展開されていない)である:ここでは

apply plugin: 'eclipse-wtp' 

dependencies { 
    //compile project(":MagniCompCommon") 
    compile project(":Model") 

    compile("org.glassfish.jersey.containers:jersey-container-servlet:$jerseyGlassfishVersion") 
    // Required for JAX-RS Client 
    compile("org.glassfish.jersey.core:jersey-client:$jerseyGlassfishVersion") 
} 

はトップのためのbuild.gradleです(CmbProject):

apply plugin: 'java' 

subprojects { 

    apply plugin: 'java' 
    apply plugin: 'nebula.provided-base' 
    apply plugin: 'nebula.optional-base' 

    sourceCompatibility = JavaVersion.VERSION_1_8 
    javadoc.enabled = false 

    sourceSets { 
     main { 
      java { 
       // Define all source dirs - Purpose is to add "src-gen" 
       srcDirs = ["src/main/java", "src-gen"] 
      } 
     } 
    } 

    /* 
    * Repositories used by each subproject must be given below. 
    * Because each subproject resolves dependencies of other 
    * subprojects, all subprojects must know all repos. 
    * In other words, if projectA needs repo "foo.org" and projectB 
    * depends upon projectA, then projectB needs repo "foo.org" as 
    * well. 
    */ 
    repositories { 
     maven { 
      // Local repo for annovention 
      url uri("$rootDir/MagniCompCommon/repo") 
     } 

     mavenCentral() 
     maven { 
      url "http://download.java.net/maven/2" 
     } 
     maven { 
      // Texo/EMF 
      url "https://oss.sonatype.org/content/groups/public/org/eclipse/emf" 
     } 
     maven { 
      // Eclipse 
      url "https://oss.sonatype.org/content/repositories/public/eclipse" 
     } 
     maven { 
      url "https://repository.jboss.org/nexus/content/groups/public-jboss" 
     } 
     maven { 
      url "http://maven.vaadin.com/vaadin-addons" 
     } 
     maven { 
      url "http://oss.sonatype.org/content/repositories/vaadin-snapshots" 
     } 
     maven { 
      url("http://maven.clapper.org") 
     } 
     /* 
     * -ADD LAST- so that it doesn' override any others 
     * DynamicReports depends upon JasperReports which lists their own 
     * bug fixed versions of packages like "com.lowagie:itext:2.1.7.js2" 
     * This repo provides such patched packages. 
     */ 
     maven { 
      url("http://jasperreports.sourceforge.net/maven2") 
     } 
    } 

    /* 
    * Variables local to this file 
    */ 
    def bouncycastleVersion = "1.54" // Was 1.51 
    def slf4jVersion = "1.7.19" 
    def hibernateVersion = "4.3.11.Final" 
    def texoVersion = "0.9.0-v201501182340" 
    def emfVersion = "2.11.0-v20150123-0347" 
    def jnaVersion = "4.1.0" 

    ext { 
     /* 
     * Variables here are used by subprojects 
     */ 
     vaadinVersion = "7.6.8" // was 7.6.4 
     vaadinIconsVersion = "1.0.1" 
     jerseyGlassfishVersion = "2.23.2" // was 2.22.2 
    } 

    dependencies { 

     /* 
     * PRODUCT SPECIFIC 
     */ 
     compile("org.bouncycastle:bcprov-jdk15on:$bouncycastleVersion") 
     compile("org.bouncycastle:bcprov-ext-jdk15on:$bouncycastleVersion") 
     compile("org.bouncycastle:bcpkix-jdk15on:$bouncycastleVersion") 

     compile("com.h2database:h2:1.3.176") 

     testCompile("org.testng:testng:6.9.4") 

     /* 
     * MagniComp common and product 
     */ 
     compile("org.simpleframework:simple-xml:2.6.9") 
     // Logging slf4j API 
     compile("org.slf4j:slf4j-api:$slf4jVersion") 
     // Send JCL to slf4j 
     compile("org.slf4j:jcl-over-slf4j:$slf4jVersion") 
     // Anything using JUL should defer to slf4j 
     compile("org.slf4j:jul-to-slf4j:$slf4jVersion") 
     // Send slf4j to log4j 1.2 for those JARs which use slf4j 
     compile("org.slf4j:slf4j-log4j12:$slf4jVersion") 
     // Log4j itself 
     compile("log4j:log4j:1.2.17") 
     // Hibernate 
     // Do not include "hibernate-core" explicitly as hibernate-entitymanager will take care of it 
     compile("org.hibernate:hibernate-entitymanager:$hibernateVersion") 
     compile("org.hibernate:hibernate-c3p0:$hibernateVersion") 

     compile("mysql:mysql-connector-java:5.1.38") 

     // Texo 
     compile("org.eclipse.emf:org.eclipse.emf.texo:$texoVersion") 
     compile("org.eclipse.emf:org.eclipse.emf.texo.server:$texoVersion") 
     compile("org.eclipse.emf:org.eclipse.emf.texo.xml:$texoVersion") 
     // Texo dependencies (not automaticly added by texo) 
     compile("org.eclipse.emf:org.eclipse.emf.common:$emfVersion") 
     compile("org.eclipse.emf:org.eclipse.emf.ecore:$emfVersion") 
     compile("org.eclipse.emf:org.eclipse.emf.ecore.xmi:$emfVersion") 
     // Required by org.eclipse.emf 
     // Disable because it's causing: 
     // java.lang.SecurityException: class "org.osgi.framework.BundleReference"'s signer information does not match signer information of other classes in the same package 
     //compile("org.eclipse.core:org.eclipse.core.runtime:3.7.0") 

     compile("org.jsoup:jsoup:1.7.2") 

     // Apache HTTP client 
     compile("org.apache.httpcomponents:httpclient:4.3.5") 
     // EventBus and more 
     compile("com.google.guava:guava:18.0") 

     // Quartz scheduler 
     compile("org.quartz-scheduler:quartz:2.2.2") { 
      exclude group: "c3p0", module: "c3p0" 
     } 
     // Java Mail 
     compile("javax.mail:mail:1.4.5") 

     // JNA for Common and CaBridge 
     compile("net.java.dev.jna:jna:$jnaVersion") 
     compile("net.java.dev.jna:jna-platform:$jnaVersion") 

     // This package provided by Tomcat or Servlet container 
     provided("javax.servlet:javax.servlet-api:3.1.0") 

    } 
} 

答えて

0

私は解決策を見つけました。

WTPプロジェクトの依存関係である各プロジェクトには、それぞれが持っている必要がありますのみWTPプロジェクトでこれを持っ

apply plugin: 'eclipse-wtp' 

は十分ではありません。

関連する問題