使用teamcity构建时生成工件的示例java项目
我不懂java,但正在尝试使用teamcity for CI/CD测试java项目,这个问题是我无法触发build生成使用teamcity构建时生成工件的示例java项目,java,teamcity,Java,Teamcity,我不懂java,但正在尝试使用teamcity for CI/CD测试java项目,这个问题是我无法触发build生成工件,这对于部署另一个构建配置至关重要 那么,有人能给出一个示例java项目,在与teamcity一起构建时可以生成工件 编辑:更多详细信息如下: 项目树: └───src └───main └───java └───com └───mycompany
工件,这对于部署另一个构建配置至关重要
那么,有人能给出一个示例java项目,在与teamcity一起构建时可以生成工件
编辑:更多详细信息如下:
项目树:
└───src
└───main
└───java
└───com
└───mycompany
└──app
最后一个文件夹app
包含一个名为app.java
的文件,其内容如下:
package com.mycompany.app;
/**
* Hello world!
*
*/
public class App
{
public static void main( String[] args )
{
System.out.println( "Hello World!" );
System.out.println("A NullPointerException is a drag...");
Object myObject = null;
/**
* Checker prevents this from compiling...
*/
// System.out.println("myObject: " + myObject.toString());
/**
* ... which is simply fantastic. It shows:
*
* error: [dereference.of.nullable] dereference of possibly-null
* reference myObject
*
* http://checkerframework.org
*/
System.out.println("... but thankfully, Checker has our back: http://checkerframework.org");
}
我正试图构建hello
world项目,复制自互联网,我无法验证此源代码及其工作原理
maven版本的pom.xml
与src
位于同一文件夹中:
<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/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.mycompany.app</groupId>
<artifactId>my-app</artifactId>
<packaging>jar</packaging>
<version>1.0-SNAPSHOT</version>
<name>my-app</name>
<url>http://maven.apache.org</url>
<properties>
<!-- This property will be set by the Maven Dependency plugin -->
<annotatedJdk>${org.checkerframework:jdk8:jar}</annotatedJdk>
</properties>
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>3.8.1</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.checkerframework</groupId>
<artifactId>checker</artifactId>
<version>1.9.4</version>
</dependency>
<dependency>
<groupId>org.checkerframework</groupId>
<artifactId>checker-qual</artifactId>
<version>1.9.4</version>
</dependency>
<dependency>
<groupId>org.checkerframework</groupId>
<artifactId>jdk8</artifactId>
<version>1.9.4</version>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>exec-maven-plugin</artifactId>
<version>1.2.1</version>
<executions>
<execution>
<goals>
<goal>java</goal>
</goals>
</execution>
</executions>
<configuration>
<mainClass>com.mycompany.app.App</mainClass>
<arguments>
<argument>argument1</argument>
</arguments>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-shade-plugin</artifactId>
<version>2.1</version>
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>shade</goal>
</goals>
<configuration>
<transformers>
<transformer implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">
<mainClass>com.mycompany.app.App</mainClass>
</transformer>
</transformers>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<!-- This plugin will set the properties values using dependency information -->
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-dependency-plugin</artifactId>
<version>2.3</version>
<executions>
<execution>
<goals>
<goal>properties</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>1.8</source>
<target>1.8</target>
<fork>true</fork>
<!-- Add all the checkers you want to enable here -->
<annotationProcessors>
<annotationProcessor>org.checkerframework.checker.nullness.NullnessChecker</annotationProcessor>
</annotationProcessors>
<compilerArgs>
<!-- location of the annotated JDK, which comes from a Maven dependency -->
<arg>-Xbootclasspath/p:${annotatedJdk}</arg>
</compilerArgs>
</configuration>
</plugin>
</plugins>
</build>
</project>
4.0.0
com.mycompany.app
谢谢你的帮助。我现在被困了几天。您需要告诉TeamCity构建工件的位置。在构建配置中有一个字段(Arifact path),它将采用ant表示法。例如,显示所有jar/war文件
**/*.war
**/*.jar
这将扫描整个项目以查找war或jar文件。这些文件通常放在maven用来构建源代码的/target
文件夹中。你的问题太广泛了。请提供详情。您如何构建java项目的?“我不能触发构建”是什么意思?也许你不知道如何构建它?我会在一分钟内更新#1。谢谢,但是如何在teamcity web ui的工件选项卡中拥有*.jar
文件?我有另一个构建配置,它将检查上一个构建的构建成功状态以及它的工件
。因此,如果您有另一个使用此配置的构建配置,则需要将其设置为依赖项。您可以声明它依赖于人工制品,并使用与上面相同的规则。将以前的构建配置设置为构建触发器也是一个好主意。绝对以后的构建将在以前的构建成功时触发,并查找.jar
包执行其他操作,因此,我必须将相同的***.jar
放在上一个文件夹的同一个文件夹中,以便以后构建查找.jar
。谢谢,我稍后会尝试并给出成功与否的反馈。它没有生成.jar
工件,我刚刚用图像更新了#1。maven的目标是在项目上运行构建服务器。您正在使用shade插件,它将在打包阶段为您生成一个胖罐子。您至少需要构建周期来使用包。您可以运行mvn clean install