簡體   English   中英

Spring Boot Maven插件未在Openshift環境中包裝Java類

[英]Spring boot maven plugin not packaging java classes in Openshift environment

我有一個多模塊Maven項目,其中的一個模塊使用Spring Boot。

當我將jar打包到PC中時,它可以正常工作,並且jar中包含所有Java類,但是當我在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>

我用來打包jar的Maven命令(在Openshift卡式盒中執行)

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

我的Openshift框中的mvn -v命令

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"

生成的jar包含所有庫,.properties文件,Web資源等,但沒有Java類的標志...

我想念什么? 為什么不將Java類也打包?

非常感謝

結案

我發現了問題。 我錯誤地忽略了Web模塊的src文件夾,因此沒有將任何內容提交給Openshift卡式盒的git存儲庫,因此它沒有在jar中打包任何Java文件,因為沒有Java文件! 真可惜! ;-)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM