Maven忽略GitLab CI

时间:2017-07-29 22:02:03

标签: java maven gitlab gitlab-ci gitlab-ci-runner

我正在尝试让Maven打包一个简单的RESTful项目,该项目使用GitLab CI中的.properties文件中的变量。问题是我无法让Maven正确打包.properties文件。

这是我的.gitlab-ci.yml文件:

stages:
    - build
    - package
    - deploy

variables:
    PROPERTIES_VALUE: $PROPERTIES_VALUE

services:
    - docker:dind

maven-build:
  image: maven:3-jdk-8
  stage: build
  script: 

    # Getting a value from $PROPERTIES_VALUE doesn't work either
    - printf 'greeting = $PROPERTIES_VALUE \ntest = "f"' > Foo/src/main/resources/application.properties
    - cat Foo/src/main/resources/application.properties
    - "mvn package -B -f Foo/pom.xml"

  artifacts:
    paths:
      - Foo/target/*.jar

上面我尝试创建并填充application.properties,文件被创建但maven忽略它。我尝试从“秘密变​​量”中获取PROPERTIES_VALUE,但它不起作用。

我还将文件夹添加到我的pom.xml:

    <build>
    <plugins>
        <plugin>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-maven-plugin</artifactId>
        </plugin>
    </plugins>
    <resources>
        <resource>
            <directory>src/main/resources</directory>
            <includes>
                <include>**/*.properties</include>
            </includes>
        </resource>
    </resources>
</build>

Maven仍然忽略我的属性文件。在我自己的机器上的IDE中,一切正常,但我无法在GitLab Runner上完成它。

这是使用application.properties文件的java类:

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.File;
import java.util.Properties;

@Controller
public class Greeting {
    @RequestMapping("/greeting")
    public @ResponseBody String greeting(){
        Properties prop = new Properties();
        InputStream input = null;
        String greeting;
        try {

            input = new FileInputStream("src/main/resources/application.properties");

            // load a properties file
            prop.load(input);

            // get the property value and print it out
            greeting = prop.getProperty("greeting");

        } catch (IOException ex) {
            ex.printStackTrace();
            greeting = "failed";
        }
        return greeting;
    }
}

正如您所看到的,每次我尝试Maven打包的jar文件时,它每次都会返回“失败”,并说这样的文件不存在。

我还应该补充一点,我忽略了我的GitLab仓库中的某些文件,所以我所推送的只有2个类,pom.xml文件和一个空资源文件夹。

希望有人可以帮助我。

谢谢。

0 个答案:

没有答案