我目前有一个Java测试库,它是用Maven构建的,并以jar形式发布.我的项目依赖于一个非常常见的库(Objectweb ASM),并且我遇到过类似路径中已经存在早期且不兼容的ASM版本的问题.因此,我开始使用jarjar-maven-plugin来创建jar,在内部重新打包ASM,它不会与另一个版本的ASM冲突.
这执行得很好,我的库可以作为依赖项拉入,没有问题.
但是,因为我的项目在ASM上具有编译范围依赖性,所以每当客户端项目添加我的库时,传递依赖关系也都被拉入.因此,假设,如果他们使用特定版本的ASM,并且他们还将我依赖的版本添加到类路径中,则它们具有未定义的行为.我想避免这种情况,并允许客户端依赖JarJar'd工件,而不会让Maven不必要地和可能危险地降低传递依赖性.
如何创建一个JarJar'd工件,用户可以依赖它而不会提取传递依赖关系?
我有一个 JavaFX 项目,我想将其构建为 Jar 文件。但是,当我尝试这样做时,出现错误。
Error:Java FX Packager: Can't build artifact - fx:deploy is not available in this JDK
Run Code Online (Sandbox Code Playgroud)
我从去年开始在这里发现了类似的问题,但似乎他们没有得出任何结论。
我在 CI 环境中运行 e2e 测试,但我看不到管道中的工件。
bitbucket-pipelines.yml:
image: cypress/base:10
options: max-time: 20
pipelines:
default:
-step:
script:
- npm install
-npm run test
artifacts:
-/opt/atlassian/pipelines/agent/build/cypress/screenshots/*
-screenshots/*.png
Run Code Online (Sandbox Code Playgroud)
也许我输入了错误的路径,但我不确定。
有人知道我做错了什么吗?
我正在尝试部署 github.io 博客,但在构建和部署方面遇到问题。我可以在本地服务器上构建文件,没有任何问题,但是当我尝试通过推送将其发布到 github 服务器上时,它会抛出构建和部署错误:
错误:错误:找不到上传的工件!
这是我的 git repo 链接以获取更多信息:https://github.com/dailyole/dailyole.github.io/runs/4677505925 ?check_suite_focus=true
几周前,我能够在 github.io 上发布相同的文件,没有出现任何问题,但现在会抛出错误。
我的maven工件被部署到Nexus快照存储库.在那里,它存储在正确的目录中,但其文件名具有以下模式:
mylibrary-1.0-20130213.125827-2.jar
Run Code Online (Sandbox Code Playgroud)
但是,Maven无法下载该快照.根据错误日志,Maven似乎期望以下文件名:
mylibrary-1.0-SNAPSHOT.jar
Run Code Online (Sandbox Code Playgroud)
这些是我的pom中的存储库设置:
<repositories>
<repository>
<id>mycompany-all</id>
<url>https://servername/nexus/content/groups/mycompany/</url>
</repository>
</repositories>
<distributionManagement>
<repository>
<id>mycompany-releases</id>
<url>https://servername/nexus/content/repositories/releases/</url>
</repository>
<snapshotRepository>
<id>mycompany-snapshots</id>
<url>https://servername/nexus/content/repositories/snapshots/</url>
</snapshotRepository>
</distributionManagement>
Run Code Online (Sandbox Code Playgroud)
注意:nexus组包括releases和snapshotsrepo.
我没有配置这些回购settings.xml- 这是问题吗?或者我还做错了什么?
我最近读了一本关于设计模式的书:我在每个页面中多次遇到过Artifacts这个词!它们实际上是什么?应该在哪里使用?
在UP中,工件非常重要,它们在面向对象分析中发挥着重要作用....
我一直在努力将我的javafx应用程序转换为jar文件.我正在使用Java 1.7 update 7.
Oracle有一些信息,但它似乎分散在各处.Intellij几乎正在完成这项工作,但我收到以下错误:
java.lang.NoClassDefFoundError: javafx/application/Application
Run Code Online (Sandbox Code Playgroud)
这似乎说我需要告诉java jfxrt.jar在哪里...如果我将这个jar添加到我的类路径信息中为intellij中的清单构建 - ctrl + shift + alt + s - >工件 - >输出布局选项卡 - >类路径,然后我得到另一个错误:
Could not find or load main class com.downloadpinterest.code.Main
Run Code Online (Sandbox Code Playgroud)
在我的类路径中包含jfxrt.jar似乎很奇怪...
我也试过创建一个蚂蚁脚本,但我觉得IntelliJ是90%的方式 - 我只需要一些帮助来弄清楚为什么我需要包含jfxrt.jar,以及为什么我的主类没有找到(我猜我需要以某种方式将它添加到类路径?).
谁能让我知道发生了什么?我之前有一个基本的gui工作正常,但JavaFX似乎让生活变得复杂!
before_script 用于定义应该在所有作业(包括部署作业)之前、但在工件恢复之后运行的命令。
这告诉我工件是在作业开始运行之前生成的
但是工件文档说
工件是作业成功完成后附加到作业的文件和目录列表
这告诉我工件是在作业完成运行后产生的。
这是一个矛盾。有人可以解释一下这不是矛盾吗?
我想他们在谈论以前工作中的神器?但我不知道 artifact 和 job 是如何工作的,并且可能是错误的。
当我想要下载工件时,我使用以下类型的 URL:https://github.com/some_user/some_repo/suites/some_id/artifacts/some_id。.zip然而,即使结果只是一个文件,这也总是引导我找到一个包。就我而言,这个附加层完全是多余的,我想跳过它(当我构建一个我希望能够方便预览的 pdf 时,这尤其烦人)。
(如何)我可以设置自动化工作流程来公开解压的文件吗?