2016-08-29 59 views
0

我有一個多模塊maven項目,其中一個模塊使用Spring Boot。春季啓動maven插件不在Openshift環境中打包java類

當我將我的jar包裝到我的PC中時,它工作正常,所有java類都包含在jar中,但是當我在Openshift環境中執行此操作時,只包含Web資源,而不包括java類。

我有一個Openshift DIY墨盒,其中使用動作掛鉤設置環境,打包我的jar並運行它。

這個程序工作正常,直到我做了一些最近的變化,這是我的maven項目分成模塊。

父的pom.xml

<?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>XXXX</groupId> 
<artifactId>XXXX</artifactId> 
<version>XXXX</version> 
<packaging>pom</packaging> 

<modules> 
    <module>data</module> 
    <module>web</module> 
</modules> 

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

    <maven.compiler.plugin.version>3.5</maven.compiler.plugin.version> 
    <maven.jar.plugin.version>3.0.2</maven.jar.plugin.version> 
    <maven.clean.plugin.version>2.5</maven.clean.plugin.version> 
    <maven.spring-boot-maven-plugin.version>1.3.3.RELEASE</maven.spring-boot-maven-plugin.version> 
</properties> 

<build> 
    <pluginManagement> 
     <plugins> 
      <plugin> 
       <groupId>org.apache.maven.plugins</groupId> 
       <artifactId>maven-clean-plugin</artifactId> 
       <version>${maven.clean.plugin.version}</version> 
      </plugin> 

      <plugin> 
       <groupId>org.apache.maven.plugins</groupId> 
       <artifactId>maven-compiler-plugin</artifactId> 
       <version>${maven.compiler.plugin.version}</version> 
      </plugin> 

      <plugin> 
       <groupId>org.springframework.boot</groupId> 
       <artifactId>spring-boot-maven-plugin</artifactId> 
       <version>${maven.spring-boot-maven-plugin.version}</version> 
      </plugin> 

      <plugin> 
       <groupId>org.apache.maven.plugins</groupId> 
       <artifactId>maven-jar-plugin</artifactId> 
       <version>${maven.jar.plugin.version}</version> 
      </plugin> 
     </plugins> 
    </pluginManagement> 

    <plugins> 
     <plugin> 
      <groupId>org.apache.maven.plugins</groupId> 
      <artifactId>maven-compiler-plugin</artifactId> 
      <executions> 
       <execution> 
        <goals> 
         <goal>compile</goal> 
        </goals> 
       </execution> 
      </executions> 
      <configuration> 
       <source>${java.version}</source> 
       <target>${java.version}</target> 
      </configuration> 
     </plugin> 
    </plugins> 
</build> 

<dependencyManagement> 
    <dependencies> 
     ... 
    </dependencies> 
</dependencyManagement> 

<dependencies> 
    .... 
</dependencies> 

web模塊的pom.xml

<?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>XXXX</groupId> 
    <artifactId>XXXX</artifactId> 
    <version>1.2.3</version> 
</parent> 

<artifactId>XXXX</artifactId> 
<packaging>jar</packaging> 

<properties> 
    ... 
</properties> 

<build> 
    <finalName>${project.name}-${project.version}</finalName> 
    <resources> 
     <resource> 
      <directory>${project.resources.path}</directory> 
     </resource> 
    </resources> 

    <plugins> 
     <plugin> 
      <groupId>org.apache.maven.plugins</groupId> 
      <artifactId>maven-clean-plugin</artifactId> 
      <configuration> 
       <filesets> 
        <fileset> 
         <directory>deployments</directory> 
         <includes> 
          <include>*.jar</include> 
          <followSymlinks>false</followSymlinks> 
         </includes> 
        </fileset> 
       </filesets> 
      </configuration> 
     </plugin> 

     <plugin> 
      <groupId>org.apache.maven.plugins</groupId> 
      <artifactId>maven-jar-plugin</artifactId> 
     </plugin> 

     <plugin> 
      <groupId>org.springframework.boot</groupId> 
      <artifactId>spring-boot-maven-plugin</artifactId> 
      <executions> 
       <execution> 
        <goals> 
         <goal>repackage</goal> 
        </goals> 
       </execution> 
      </executions> 
      <configuration> 
       <mainClass>XXXX</mainClass> 
       <finalName>XXXX</finalName> 
       <outputDirectory>../deployments</outputDirectory> 
       <excludeGroupIds>org.seleniumhq.selenium,org.projectlombok</excludeGroupIds> 
      </configuration> 
     </plugin> 
    </plugins> 
</build> 

<dependencies> 
    .... 
</dependencies> 

數據模塊的pom.xml

<?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>XXXX</groupId> 
    <artifactId>XXXX</artifactId> 
    <version>1.2.3</version> 
</parent> 

<artifactId>XXXX</artifactId> 
<packaging>jar</packaging> 

<properties> 
.... 
</properties> 

<build> 
    <plugins> 
     <plugin> 
      <groupId>org.apache.maven.plugins</groupId> 
      <artifactId>maven-jar-plugin</artifactId> 
     </plugin> 
    </plugins> 
</build> 

<dependencies> 
.... 
</dependencies> 

Maven的指令I用來包裝罐(在Openshift盒執行)

${OPENSHIFT_DATA_DIR}${MVN_LINK}/bin/mvn clean install -s  
.openshift/action_hooks/settings.xml -DskipTests=true -P prod 

MVN -v命令在我Openshift框

Apache Maven 3.3.9 (bb52d8502b132ec0a5a3f4c09453c07478323dc5; 2015-11- 10T11:41:47-05:00) 
Maven home: /var/lib/openshift/5713d8630c1e66bfc5000085/app- root/data/maven 
Java version: 1.8.0_101, vendor: Oracle Corporation 
Java home: /var/lib/openshift/5713d8630c1e66bfc5000085/app- root/data/jdk1.8.0_101/jre 
Default locale: en_US, platform encoding: UTF-8 
OS name: "linux", version: "2.6.32-573.26.1.el6.x86_64", arch: "i386", family: "unix" 

所得罐包含所有的庫,.properties文件,網頁資源等,但沒有Java類的跡象...

我錯過了什麼?爲什麼不打包Java類呢?

非常感謝

回答

0

結案

我發現這個問題。我錯誤地忽略了web模塊的src文件夾,因此沒有提交到Openshift盒式磁帶的git存儲庫,因此它沒有在jar中打包任何java文件,因爲沒有!對我感到羞恥! ;-)