- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
正如我在 my previous question 中指出的那样,我正在尝试使用 Jenkins CI 为 NetBeans 多层 Web 应用程序项目设置自动构建系统。
我的 Ant 目标是干净和调试。 Clean 可以工作,但在尝试编译项目时调试失败。
在 Jenkins 构建的输出中,我看到以下命令:
[PGB Webapp] $ cmd.exe/C '""C:\Program Files (x86)\Jenkins\tools\hudson.tasks.Ant_AntInstallation\Apache_Ant\bin\ant.bat""-Dlibs.MySQLDriver.classpath=C:/Program Files (x86)/MySQL/MySQL Connector J/mysql-connector-java-5.1.31-bin.jar""-Dlibs.CopyLib s.classpath=C:/Program Files/NetBeans 8.0/java/ant/extra/org-netbeans-modules-java-j2seproject-copylibstask.jar""-Dj2ee.server.home=C:/Program Files/wildfly-8.1.0.Final"干净调试 && 退出 %%ERRORLEVEL%%"'
这是我输出的最后一部分:(对我来说最重要的部分)
library-inclusion-in-manifest:
-do-compile:
[mkdir] Created dir: C:\Program Files (x86)\Jenkins\workspace\PGB Webapp\pgb-war\build\empty
[mkdir] Created dir: C:\Program Files (x86)\Jenkins\workspace\PGB Webapp\pgb-war\build\generated-sources\ap-source-output
[javac] Compiling 2 source files to C:\Program Files (x86)\Jenkins\workspace\PGB Webapp\pgb-war\build\web\WEB-INF\classes
[javac] C:\Program Files (x86)\Jenkins\workspace\PGB Webapp\pgb-war\src\java\com\edw\config\ApplicationConfig.java:6: error: package javax.ws.rs.core does not exist
[javac] import javax.ws.rs.core.Application;
[javac] ^
[javac] C:\Program Files (x86)\Jenkins\workspace\PGB Webapp\pgb-war\src\java\com\edw\config\ApplicationConfig.java:8: error: cannot find symbol
[javac] public class ApplicationConfig extends Application {
[javac] ^
[javac] symbol: class Application
[javac] C:\Program Files (x86)\Jenkins\workspace\PGB Webapp\pgb-war\src\java\com\edw\rest\EmployeeResource.java:12: error: package javax.ws.rs does not exist
[javac] import javax.ws.rs.GET;
[javac] ^
[javac] C:\Program Files (x86)\Jenkins\workspace\PGB Webapp\pgb-war\src\java\com\edw\rest\EmployeeResource.java:13: error: package javax.ws.rs does not exist
[javac] import javax.ws.rs.Path;
[javac] ^
[javac] C:\Program Files (x86)\Jenkins\workspace\PGB Webapp\pgb-war\src\java\com\edw\rest\EmployeeResource.java:14: error: package javax.ws.rs does not exist
[javac] import javax.ws.rs.PathParam;
[javac] ^
[javac] C:\Program Files (x86)\Jenkins\workspace\PGB Webapp\pgb-war\src\java\com\edw\rest\EmployeeResource.java:15: error: package javax.ws.rs does not exist
[javac] import javax.ws.rs.QueryParam;
[javac] ^
[javac] C:\Program Files (x86)\Jenkins\workspace\PGB Webapp\pgb-war\src\java\com\edw\rest\EmployeeResource.java:16: error: package javax.ws.rs does not exist
[javac] import javax.ws.rs.Produces;
[javac] ^
[javac] C:\Program Files (x86)\Jenkins\workspace\PGB Webapp\pgb-war\src\java\com\edw\rest\EmployeeResource.java:17: error: package javax.ws.rs.core does not exist
[javac] import javax.ws.rs.core.MediaType;
[javac] ^
[javac] C:\Program Files (x86)\Jenkins\workspace\PGB Webapp\pgb-war\src\java\com\edw\rest\EmployeeResource.java:19: error: cannot find symbol
[javac] @Path("/employees")
[javac] ^
[javac] symbol: class Path
[javac] C:\Program Files (x86)\Jenkins\workspace\PGB Webapp\pgb-war\src\java\com\edw\rest\EmployeeResource.java:29: error: cannot find symbol
[javac] public List<Employee> find(@QueryParam("name") String name) {
[javac] ^
[javac] symbol: class QueryParam
[javac] location: class EmployeeResource
[javac] C:\Program Files (x86)\Jenkins\workspace\PGB Webapp\pgb-war\src\java\com\edw\rest\EmployeeResource.java:27: error: cannot find symbol
[javac] @GET
[javac] ^
[javac] symbol: class GET
[javac] location: class EmployeeResource
[javac] C:\Program Files (x86)\Jenkins\workspace\PGB Webapp\pgb-war\src\java\com\edw\rest\EmployeeResource.java:28: error: cannot find symbol
[javac] @Produces({ MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML })
[javac] ^
[javac] symbol: class Produces
[javac] location: class EmployeeResource
[javac] C:\Program Files (x86)\Jenkins\workspace\PGB Webapp\pgb-war\src\java\com\edw\rest\EmployeeResource.java:38: error: cannot find symbol
[javac] public Employee findById(@PathParam("id") String id) {
[javac] ^
[javac] symbol: class PathParam
[javac] location: class EmployeeResource
[javac] C:\Program Files (x86)\Jenkins\workspace\PGB Webapp\pgb-war\src\java\com\edw\rest\EmployeeResource.java:36: error: cannot find symbol
[javac] @GET @Path("{id}")
[javac] ^
[javac] symbol: class GET
[javac] location: class EmployeeResource
[javac] C:\Program Files (x86)\Jenkins\workspace\PGB Webapp\pgb-war\src\java\com\edw\rest\EmployeeResource.java:36: error: cannot find symbol
[javac] @GET @Path("{id}")
[javac] ^
[javac] symbol: class Path
[javac] location: class EmployeeResource
[javac] C:\Program Files (x86)\Jenkins\workspace\PGB Webapp\pgb-war\src\java\com\edw\rest\EmployeeResource.java:37: error: cannot find symbol
[javac] @Produces({ MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML })
[javac] ^
[javac] symbol: class Produces
[javac] location: class EmployeeResource
[javac] C:\Program Files (x86)\Jenkins\workspace\PGB Webapp\pgb-war\src\java\com\edw\rest\EmployeeResource.java:44: error: cannot find symbol
[javac] public List<Employee> findByManager(@PathParam("id") String managerId) {
[javac] ^
[javac] symbol: class PathParam
[javac] location: class EmployeeResource
[javac] C:\Program Files (x86)\Jenkins\workspace\PGB Webapp\pgb-war\src\java\com\edw\rest\EmployeeResource.java:42: error: cannot find symbol
[javac] @GET @Path("{id}/reports")
[javac] ^
[javac] symbol: class GET
[javac] location: class EmployeeResource
[javac] C:\Program Files (x86)\Jenkins\workspace\PGB Webapp\pgb-war\src\java\com\edw\rest\EmployeeResource.java:42: error: cannot find symbol
[javac] @GET @Path("{id}/reports")
[javac] ^
[javac] symbol: class Path
[javac] location: class EmployeeResource
[javac] C:\Program Files (x86)\Jenkins\workspace\PGB Webapp\pgb-war\src\java\com\edw\rest\EmployeeResource.java:43: error: cannot find symbol
[javac] @Produces({ MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML })
[javac] ^
[javac] symbol: class Produces
[javac] location: class EmployeeResource
[javac] C:\Program Files (x86)\Jenkins\workspace\PGB Webapp\pgb-war\src\java\com\edw\config\ApplicationConfig.java:17: error: method does not override or implement a method from a supertype
[javac] @Override
[javac] ^
[javac] C:\Program Files (x86)\Jenkins\workspace\PGB Webapp\pgb-war\src\java\com\edw\config\ApplicationConfig.java:22: error: method does not override or implement a method from a supertype
[javac] @Override
[javac] ^
[javac] 22 errors
BUILD FAILED
C:\Program Files (x86)\Jenkins\workspace\PGB Webapp\nbproject\build-impl.xml:208: The following error occurred while executing this line:
C:\Program Files (x86)\Jenkins\workspace\PGB Webapp\pgb-war\nbproject\build-impl.xml:881: The following error occurred while executing this line:
C:\Program Files (x86)\Jenkins\workspace\PGB Webapp\pgb-war\nbproject\build-impl.xml:297: Compile failed; see the compiler error output for details.
Total time: 1 second
Build step 'Start Ant' marked build as failure
Finished: FAILURE
这里重要的是 Java 编译器无法找到 RESTful Web 服务库。我在 C:/Program Files/wildfly-8.1.0.Final/modules/system/layers/base/javax/ws/rs/api/main/jaxrs-api-3.0.8.Final.jar 找到了我需要的 jar。
我没有使用 Ant 构建工具的经验,所以我搜索并找到了很多相关信息,但我似乎无法弄清楚如何添加这个库,以便项目在 Jenkins 上正确构建。
目前我的 build.xml 文件如下所示:
<?xml version="1.0" encoding="UTF-8"?>
<project name="pgb" default="default" basedir="." xmlns:ear="http://www.netbeans.org/ns/j2ee-earproject/2">
<description>Builds, tests, and runs the project pgb.</description>
<import file="nbproject/build-impl.xml"/>
<taskdef resource="net/jtools/classloadertask/antlib.xml">
<classpath>
<fileset dir="${basedir}/lib" includes="ant-classloader*.jar"/>
</classpath>
</taskdef>
<!--Add jar to the classpath-->
<classloader loader="system">
<classpath>
<fileset dir="${basedir}/lib" includes="jboss-modules.jar"/>
<fileset dir="${basedir}/lib" includes="jaxrs-api-3.0.8.Final.jar"/>
</classpath>
</classloader>
</project>
文件 build-impl.xml(已导入)由 NetBeans 生成(您可能已经知道),并且太大而无法在此处显示,此外我无法在那里更改任何内容,因为系统可能会自动更改该文件本身。
无论如何,正如你所看到的,我尝试使用我在这里找到的 Ant 类加载器:https://stackoverflow.com/a/5116470/2541501但运气不佳..我什至将所需的 jar 文件添加到项目的 lib 目录中。
所以,我的问题是:如何更改 Ant 构建脚本,以便 Java 编译器不会提示缺少包(即缺少 jar 文件)?
我还担心,如果我向 build.xml 文件添加任何目标,它可能会与生成的 build-impl.xml 文件中声明的任何内容发生冲突。有人也知道这件事吗?
最佳答案
好吧,我的同事发现我们只需将 NetBeans 项目的私有(private)属性复制到我们项目的 Jenkins 作业的 Ant Invoke 的 Properties 字段即可。
因此,我们的 NetBeans 项目在 nbproject 目录中有一个名为 private 的目录。在这个private目录中,有一个名为private.properties的文件。我们从此文件中获取属性并将其复制到 Ant Invoke 的 Properties 字段中。现在我们的属性字段如下所示:
libs.CopyLibs.classpath=C:/Program Files/NetBeans 8.0/java/ant/extra/org-netbeans-modules-java-j2seproject-copylibstask.jar
libs.MySQLDriver.classpath=C:/Program Files (x86)/MySQL/MySQL Connector J/mysql-connector-java-5.1.31-bin.jar
j2ee.platform.is.jsr109=true
j2ee.server.domain=C:/Wildfly/standalone
j2ee.server.home=C:/Wildfly
j2ee.server.instance=wildfly-deployer:localhost:8080#standalone&C:\\Wildfly
现在我们可以毫无问题地执行所有 Ant 命令。我们还可以部署通过 Jenkins 构建的 Web 应用程序。
如果有人想知道,可以在 WildFly 中找到 RESTful Web 服务。所以我们不需要直接包含RESTful Web Services的jar,我们只需要正确设置WildFly服务器的属性即可。
回想起来,我想说,为 NetBeans 项目设置一个自动构建的持续集成系统并不难。现在,下一步还包括项目的自动化测试。
关于java - 如何将 NetBeans Java Web 应用程序项目的 jar 文件添加到 Ant,以便在 Jenkins 上构建它?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25162352/
默认情况下,netbeans 将其设置存储在用户主目录下名为 .netbeans 的目录中。是否可以更改此目录的位置(尤其是在 Windows 下)? 感谢 James Schek,我现在知道了答案(
我每天都在使用 Netbeans IDE,突然我的“项目”和"file"选项卡消失了,我真的不知道该怎么办,我在谷歌上搜索过,但找不到任何合适且有效的解决方案来解决这个问题。 有人能帮助我吗? 如果您
我正在使用 Netbeans 来满足各种开发需求。但是安装大量插件会使 Netbeans 非常慢。是否可以为每个特定的开发需求(如 Eclipse)安装多个 Netbeans? 最佳答案 还有另一种方
只是一个简单的问题,我在哪里可以下载旧版本的 Netbeans? Netbeans 6.9.1 对 Java EE 开发人员来说尤为重要。 我看过他们的网站,但我只能找到 7.0.1 和 7.1 的下
我是新的 NetBeans 用户。当我加载我的项目时,一些文件被淡化了。当我将光标放在它们上时,它们显示为“忽略”。为什么?所有的 JAR 文件和类文件也会被忽略。 最佳答案 检查Tools->Opt
关闭。这个问题不满足Stack Overflow guidelines .它目前不接受答案。 想改善这个问题吗?更新问题,使其成为 on-topic对于堆栈溢出。 3年前关闭。 锁定。这个问题及其答案
任何人都知道是否可以在 netbeans 中搜索和替换所有打开的文件?如果有的话,似乎也找不到选项。 我正在使用 Netbeans 6.9 PHP IDE 最佳答案 CTRL+SHIFT+H 这将打开
是否可以将条目添加到由netbeans生成的jar的manifest.mf文件中? 例如构建一个osgi包。 最佳答案 请注意,您可以通过ant任务即时创建 list ,并动态设置属性。 首先,必须更
我最近开始使用 NetBeans,但缺少一个功能使我无法完全切换到 NetBeans。我一直使用终端,从 NetBeans 窗口切换到终端窗口很痛苦。 有没有办法将终端窗口嵌入到 NetBeans I
在netbeans中调试Java程序时,我希望调试器在导致NullPointerException的行上停止,以便可以在那里检查变量。我相信我必须在该行设置的断点上使用条件,但是条件的语法是什么? 谢
当我在JavaScript中使用PHP时,Netbeans 7.0将行突出显示为语法错误 就我而言 $(document).ready(function(){ $("#rating_comp
默认情况下,netbeans 中所有打开的文件都显示在水平选项卡中,就像浏览器一样。 我希望我的选项卡垂直列出,这可能吗? 最佳答案 工具 -> 选项 -> 外观 -> 选项卡位置 关于netbean
NetBeans 中是否有颜色选择器的快捷方式? 我在 NetBeans 网站上发现了同样的查询,据说这是可能的,但我找不到如何做到这一点的实际答案。 我的意思是:当我在 CSS 文件中编辑涉及颜色的
我刚刚开始使用 NetBeans,并正在尝试了解如何: 保存时删除尾随空格。我知道你可以手动调用它,但如果你忘记了,那就很烦人了。可以在保存时自动完成吗?我希望这样做是因为它可以保持代码整洁,因为当您
我正在开发一个 netbeans 应用程序,它的主要 TopComponent 包含一个渲染 Canvas : 当我关闭应用程序(不是顶级组件)时会生成一个错误,有时这会导致在应用程序关闭后运行一个进
有没有办法在 netbeans 中进行项目范围的搜索和替换?好像应该有,但是没找到相关信息。 谢谢 最佳答案 在编辑菜单下,您应该找到在项目中替换...的菜单项 关于netbeans - 搜索并替换整
如果是,怎么做? 最佳答案 在 Netbeans 6.9 for PHP 中,转到文件->项目属性。 在“类别”中,选择“运行配置”。有很多选项可以让您的整个项目在远程服务器上运行。 关于netbea
首先,我使用的是 NetBeans IDE 7.1(内部版本 201112071828)。 我有这段代码 onload = function() { tooltip.
/* * * This is a long comment. I broke it into lines, but that made it impossible to edit without
我在 netbeans 中有一个项目,其中有一个使用 jflex 生成的 java 扫描器。因此,当我通常使用 make 文件构建它时,我使用 -Xlint 选项,即 javac -Xlint jav
我是一名优秀的程序员,十分优秀!