Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/322.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用teamcity构建时生成工件的示例java项目_Java_Teamcity - Fatal编程技术网

使用teamcity构建时生成工件的示例java项目

使用teamcity构建时生成工件的示例java项目,java,teamcity,Java,Teamcity,我不懂java,但正在尝试使用teamcity for CI/CD测试java项目,这个问题是我无法触发build生成工件,这对于部署另一个构建配置至关重要 那么,有人能给出一个示例java项目,在与teamcity一起构建时可以生成工件 编辑:更多详细信息如下: 项目树: └───src └───main └───java └───com └───mycompany

我不懂java,但正在尝试使用teamcity for CI/CD测试java项目,这个问题是我无法触发build生成
工件,这对于部署另一个构建配置至关重要

那么,有人能给出一个示例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