如何自动化IntelliJ IDEA 11项目的Java构建过程?[关闭]

mgdq6dx1  于 2023-05-05  发布在  Java
关注(0)|答案(3)|浏览(150)

已关闭,此问题为opinion-based。目前不接受答复。
**想改善这个问题吗?**更新问题,以便editing this post可以用事实和引用来回答。

2小时前关闭
Improve this question
我正试图为我正在做的一个Java项目建立一个持续集成系统。我计划在前端使用Jenkins或类似的东西。Java项目配置为使用IntelliJ IDEA IDE版本11。问题是没有办法从命令行界面构建IntelliJ IDEA 11项目,这是必需的,因此它可以与CI前端(Jenkins)接口。
有几个潜在的解决方案,我已经研究过了。它们如下。

潜在解决方案#1

使用IntelliJ IDEA的“生成Ant构建”功能。此解决方案存在两个问题:
1.这意味着我必须维护生成的ant文件以及IntelliJ idea配置文件,这是我不想做的,或者我必须定期或动态地编程重新创建ant文件,这是不可行的,因为没有命令行界面。
1.反正也没用。这个项目相当复杂,因为有些Java文件被配置为要排除,而生成的ant文件不能正确执行排除。此外,看起来依赖项甚至没有正确生成。(彻底)搜索谷歌告诉我,这个实用程序甚至不支持IntelliJ,它的使用应该“避免”。

潜在解决方案#2

使用第三方应用程序动态生成ant构建文件,即ant-intellij-tasks。当我看到这个项目时,我非常兴奋,但不幸的是,它看起来自2009年以来就没有更新过,并且不适用于新版本的IntelliJ IDEA。我找不到任何其他像这样的库是最新的和工作。

注意事项

This link建议其他人也有类似的问题,并希望有一个命令行界面(该链接是一个插件的描述,希望为比赛-源是IntelliJ IDEA自己)。
其他人是否使用此工具集设置了构建自动化?你是怎么做到的我正在寻找的答案理想情况下不需要管理额外的配置文件,并允许我在命令行上输入一些东西并进行构建。

ukdjmx9f

ukdjmx9f1#

转换您的项目以适应Maven比定制Maven以使用您的项目结构更容易。
虽然你可以做后者,但大多数时候人们并没有很干净地设计他们的项目布局,在他们采用maven布局后,他们的项目变得更易于管理。
如果您采用默认maven项目布局的良好模式,IDEA将自动读取并完全理解它-甚至共享您在IDE中的命令行上使用的相同编译器输出。IDEA将使用pom.xml作为其配置文件。
您不能用Ant来做这件事,因为它是一个构建过程 Package 器。Maven不仅是一种依赖管理机制,它还是一个项目的抽象,IDE可以使用它来配置自己。

1mrurvl1

1mrurvl12#

你可以使用TeamCity来构建你的IntelliJ项目。这工作得很好,是自动化的,有很多插件可以让你运行命令行任务,蚂蚁任务等。
这是我经常使用的工作流程之一。
TeamCity作为Ivy存储库运行。这样你就不用去建人工工厂了
我喜欢Maven。这完全取决于你的需求是什么。只要你想用Maven的方式做事,Maven就很棒--这是一个非常好的工作流程。
根据记录,很少有IDE能很好地处理Maven项目。IntelliJ做得很好。

8xiog9wr

8xiog9wr3#

使用intelliJ,看这里:https://www.youtube.com/watch?v=870XIYMrlSo
自动化(即通过终端运行jar文件)需要将maven-assembly-plugin添加到pom文件
自2023-05-04起,可选择以下与终端相关的工作
在macOS上,打开终端
使用homebrew安装maven:brew install maven
检查maven版本以防万一:mvn --版本
导航到maven将安装的目录并设置maven项目(请根据您的项目结构进行调整)

mvn archetype:generate -DgroupId=com.salman.app -DartifactId=myapp -DarchetypeArtifactId=maven-archetype-quickstart -Darchetypeversion=1.4 -DinteractiveMode=false

导航到包含pom文件的文件夹
更改pom xml(稍后介绍)
运行mvn包导航到.jar所在的目录java -jar“jar文件的名称”
pom文件的建议(请更新以调整您的项目文件夹结构)

<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.salman.app</groupId>
  <artifactId>myapp</artifactId>
  <packaging>jar</packaging>
  <version>1.0-SNAPSHOT</version>
  <name>myapp</name>
  <url>http://maven.apache.org</url>

  <dependencies>
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>3.8.1</version>
      <scope>test</scope>
    </dependency>
  </dependencies>

  <build>
    <plugins>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-compiler-plugin</artifactId>
        <version>3.10.1</version>
        <configuration>
          <source>8</source>
          <target>8</target>
        </configuration>
      </plugin>

      <plugin>
        <artifactId>maven-assembly-plugin</artifactId>
        <configuration>
          <archive>
            <manifest>
              <mainClass>com.salman.app.App</mainClass>
            </manifest>
          </archive>
          <descriptorRefs>
            <descriptorRef>jar-with-dependencies</descriptorRef>
          </descriptorRefs>
        </configuration>
      </plugin>

      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-jar-plugin</artifactId>
        <version>3.2.0</version>
        <configuration>
          <archive>
            <manifest>
              <addClasspath>true</addClasspath>
              <mainClass>com.salman.app.App</mainClass>
            </manifest>
          </archive>
        </configuration>
      </plugin>

    </plugins>
  </build>

</project>

相关问题