我正在尝试制作包含项目中所有依赖项的 jar 文件。我正在使用 IntelliJ。
我尝试了两种方法。
在 IntelliJ 右上角的 Maven 窗口中,我单击了下面的 pom.xml 中的“clean”和“package”。
但它不包含任何依赖项。
我在 window 中使用 IntelliJ,所以我无法点击下面的 CLI 链接。我正在使用 IntelliJ 右上部分的 GUI maven 窗口。
如何使用 Maven 创建具有依赖项的可执行 JAR?
我单击了下面的链接中的“构建-构建工件 - 构建”。 如何正确从 IntelliJ 构建 jar? 它似乎包含其他库,但由于某种原因我无法执行该文件。所以,请让我使用 maven window,而不是 build-artifact。
<?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>secret.App</groupId>
<artifactId>mt</artifactId>
<version>1.0-SNAPSHOT</version>
<name>mt</name>
<!-- FIXME change it to the project's website -->
<url>http://www.example.com</url>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<maven.compiler.source>1.8</maven.compiler.source>
<maven.compiler.target>1.8</maven.compiler.target>
</properties>
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.11</version>
<scope>test</scope>
</dependency>
<!-- https://mvnrepository.com/artifact/org.apache.commons/commons-lang3 -->
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-lang3</artifactId> …Run Code Online (Sandbox Code Playgroud) 我正在尝试生成 Gradle 项目的 .jar,但是当使用 Maven 发布生成它时,它也会生成一个 .pom 文件。
问题是我有另一个项目,当它实现此依赖项之前它只查找 .jar 而现在它在所有其他项目中查找 .pom 时,我想要做的是该项目停止使用“生成 .pom”发布”任务,或者当实施时它停止寻找 .pom 文件以供其他人工作。
以下是在 Artifactory 项目 A 中生成 .jar 以及项目 B 中使用 A 并查找 .pom 的代码:
publishing {
publications {
mavenJava(MavenPublication) {
groupId = 'com.proteccion.myproject'
artifactId = 'myproject-base'
version = '1.0.1'
from components.java
}
}
repositories {
maven {
name = 'artifactory'
url 'https://url/artifactory/MyProject'
credentials {
username System.getenv("ARTIFACTORY_USER")
password System.getenv("ARTIFACTORY_PWD")
}
}
}
}
repositories {
jcenter()
maven {
url 'https://url/artifactory/MyProject'
credentials {
username System.getenv("ARTIFACTORY_USER")
password System.getenv("ARTIFACTORY_PWD") …Run Code Online (Sandbox Code Playgroud) 我正在尝试使用该命令运行我的 JAR 文件java -jar sample.jar,并且我正在使用application.yml具有以下设置的配置文件
spring:
profiles:
active:
- dev
---
server:
port: 8081
spring:
profiles: dev
---
server:
port: 8082
spring:
profiles: test
Run Code Online (Sandbox Code Playgroud)
但应用程序无法识别返回信息
No active profile set, falling back to default profiles: default并将端口设置为默认 8080 的配置文件
我尝试过类似
java -jar sample.jar -Drun.jvmArguments=-Dspring.profiles.active=dev或
java -jar sample.jar -Dspring.profiles.active=dev
在我的pom.xml文件中,我所做的唯一更改是添加<packaging>jar</packaging>属性。
据我所知,maven 配置文件是完全不同的东西,不应该影响 spring 配置文件。
我不知道在哪里寻找问题,因为当我通过Intellij IDEA 中的“运行”按钮启动应用程序时,它工作得很好,并且将每个配置文件设置为活动状态。
这里的实际问题是如何在构建工件时设置要运行的默认配置文件,这样就不需要在运行 jar 的终端命令中放置额外的标志。
我知道有很多像我这样的问题,但他们接受的大多数答案在我的情况下不起作用,其余的也没有得到解答。如果您知道这里可能存在什么问题,请告诉我。预先感谢您的任何帮助!
我需要执行为我的应用程序编写的诊断程序。该应用程序正在 Kubernetes Pod 中运行/部署。我想在 Kubernetes pod 中复制诊断可执行 jar 文件并在不停止 pod 的情况下执行它。如何才能实现这一目标?是否有特定的方法来使用 Kubernetes pod 环境运行可执行 jar?
我知道这个问题已经被问了很多次,但我尝试了一些建议,但仍然收到此错误。
我按如下方式运行 jar:
java -jar MyJar-1.0.jar com.me.ldap.ActiveMain,
我的 ActiveMain.java 文件如下所示:
包 com.me.ldap;
public class ActiveMain {
public static void main(String[] args) throws Exception {
...
}
}
Run Code Online (Sandbox Code Playgroud)
我也简单地尝试java -jar MyJar-1.0.jar过同样的Error: Could not find or load main class错误。我还研究了类路径选项,但我认为这不适用。
我在 Intellij 中将其创建为 Maven 项目。Maven> Lifecycle> package.
最近我一直在摆弄 Docker/Jenkins,以了解有关 CI/CD 工作流程的更多信息。我的目标是建立一个从 github 获取推送、构建代码并将 JAR 文件发布到远程服务器以进行进一步部署的流程。
我一直在使用Jenkins SSH Pipeline Steps 插件,它允许我通过 SSH 连接到远程服务器来执行命令。
这是部署阶段,其中涉及我要执行的命令:
stage("Deploying") {
steps {
script {
withCredentials([sshUserPrivateKey(credentialsId: 'e48b15ad-0f5e-4f07-8706-635c5250fa29', keyFileVariable: 'identity', passphraseVariable: '', usernameVariable: 'jenkins')]) {
remote.user = jenkins
remote.identityFile = identity
sshCommand remote: remote, command: 'cd Winston-Bot/; sudo ./kill_winston.sh'
sshCommand remote: remote, command: 'rm Winston-Bot/*.jar', failOnError:'false'
sshCommand remote: remote, command: 'rm -rf Winston-Bot/src', failOnError:'false'
sshPut remote: remote, from: "target/Winston-Bot-${VERSION}-jar-with-dependencies.jar", into: 'Winston-Bot/'
sshPut remote: remote, from: "src", into: 'Winston-Bot/'
sshCommand remote: remote, command: …Run Code Online (Sandbox Code Playgroud) 我是一个 Maven 的“菜鸟”,我正在为我找到的一个开源项目运行 mvn clean install。我正在尝试让它构建一个 jar 文件。当我按照“应该”的方式运行它时,它就会起作用。我收到这个错误...
Non-resolvable parent POM: Could not find artifact
com.gorillalogic.monkeytalk:monkeytalk:pom:1.0.12-SNAPSHOT and 'parent.relativePath'
points at wrong local POM @ line 6, column 10 -> [Help 2]
Run Code Online (Sandbox Code Playgroud)
对于 pom.xml 文件@第 6-10 行我有......
<parent>
<groupId>com.gorillalogic.monkeytalk</groupId>
<artifactId>monkeytalk</artifactId>
<version>1.0.12-SNAPSHOT</version>
</parent>
Run Code Online (Sandbox Code Playgroud)
我缺少一个步骤吗?如果您需要的话我可以提供更多代码吗?
提前致谢!
我拿到了 2000 年的一个旧脚本。它全部用 Java 编写,并且有一个编译文件:
<?xml version="1.0"?>
<project name="chat" default="compile" basedir=".">
<target name="init">
<property name="conf.dir" value="conf" />
<property name="src.dir" value="src" />
<property name="resource.dir" value="resource" />
<property name="build.dir" value="build" />
<property name="release.dir" value="release" />
<property name="etc.dir" value="etc" />
<property name="lib.dir" value="lib" />
</target>
<target name="clean" depends="init">
<delete dir="${build.dir}" />
<delete dir="${release.dir}" />
</target>
<target name="compile" depends="init">
<mkdir dir="${build.dir}" />
<javac srcdir="${src.dir}" destdir="${build.dir}" includeAntRuntime="false" debug="true" optimize="false" />
</target>
<target name="release" depends="compile">
<mkdir dir="${release.dir}" />
<jar destfile="${release.dir}/chat_service.jar" basedir="${build.dir}" includeantruntime="false" />
</target>
</project>
Run Code Online (Sandbox Code Playgroud)
当我在 …
我的问题是,我的 JFrame 的图标在 Eclipse 中可以工作,但没有它就无法工作。
如果 txtIcon.png 位于 .jar 文件中,我不知道必须使用什么图标路径。
this.setIconImage(new ImageIcon("txtIcon.png").getImage());
Run Code Online (Sandbox Code Playgroud)
请帮我。
亲切的问候
我正在使用 Eclipse Juno IDE 用 Java 制作数学反应游戏。根据我已经完成的研究,IDE 在保存时将所有内容编译成.class文件字节码!现在的问题是,我尝试从 Windows 机器中将所有内容提取到 JAR中,并将 JAR 提供给一些 beta 测试人员。Beta 测试人员在尝试从 Linux/Mac 访问它时报告了问题。我还知道,我将所有内容提取到的可运行 JAR基本上是一个美化的 ZIP压缩文件,其中包含 JVM 理解和执行的字节码。鉴于我的游戏有多个.java文件,我想知道是否:
将字节码打包到 JAR 中是与机器相关的
我的选择是确保所有用户都能够玩我的游戏并从中受益;还值得指出的是,我的电脑没有 javac.exe;Sun Microsystems 报告该程序已过时
System.out.println("Thanks for your patience in advance!");
Run Code Online (Sandbox Code Playgroud)jar ×10
java ×9
ant ×1
build ×1
deployment ×1
docker ×1
file ×1
gradle ×1
image ×1
jenkins ×1
kubernetes ×1
maven ×1
maven-plugin ×1
pom.xml ×1
publishing ×1
spring ×1
swing ×1
xml ×1