tomcat+;詹金斯&x2B;Java EE source=编译失败
我很难用运行在tomcat6(Centos 6.x)上的Jenkins编译我的非常简单的JavaEE源代码。我试过下载JBoss,但找不到JavaEEJAR文件,所以我可以在我的ANT脚本中包含这些文件。我从Oracle下载了JavaEE,这是一个.shshell脚本(80mb),我猜它通过提取或编译各种JAR来“安装”JavaEE。问题是它不会运行,因为Oracle shell脚本需要一个X11实例才能运行(GUI)。。。但这是一个无头服务器 目标是让一个使用JavaEE的项目每晚都能正常工作 我需要找到如何只在JavaEE库中使用JBoss(这样我就可以编译我的代码),或者需要设法让oracle的产品发挥作用?或者我的设置还有其他选项吗 下面是我的Jenkins/Ant日志输出:tomcat+;詹金斯&x2B;Java EE source=编译失败,java,jakarta-ee,ant,jboss,jenkins,Java,Jakarta Ee,Ant,Jboss,Jenkins,我很难用运行在tomcat6(Centos 6.x)上的Jenkins编译我的非常简单的JavaEE源代码。我试过下载JBoss,但找不到JavaEEJAR文件,所以我可以在我的ANT脚本中包含这些文件。我从Oracle下载了JavaEE,这是一个.shshell脚本(80mb),我猜它通过提取或编译各种JAR来“安装”JavaEE。问题是它不会运行,因为Oracle shell脚本需要一个X11实例才能运行(GUI)。。。但这是一个无头服务器 目标是让一个使用JavaEE的项目每晚都能正常工作
build-project:
[echo] JUtils: /usr/share/tomcat6/.jenkins/jobs/JUtils-Nightly/workspace/build.xml
[javac] Compiling 27 source files to /usr/share/tomcat6/.jenkins/jobs/JUtils-Nightly/workspace/target/tmp
[javac] /usr/share/tomcat6/.jenkins/jobs/JUtils-Nightly/workspace/src/net/snakedoc/jutils/SendEmail.java:21: error: package javax.mail does not exist
[javac] import javax.mail.Message;
[javac] ^
[javac] /usr/share/tomcat6/.jenkins/jobs/JUtils-Nightly/workspace/src/net/snakedoc/jutils/SendEmail.java:22: error: package javax.mail does not exist
[javac] import javax.mail.MessagingException;
[javac] ^
[javac] /usr/share/tomcat6/.jenkins/jobs/JUtils-Nightly/workspace/src/net/snakedoc/jutils/SendEmail.java:23: error: package javax.mail does not exist
[javac] import javax.mail.Session;
[javac] ^
[javac] /usr/share/tomcat6/.jenkins/jobs/JUtils-Nightly/workspace/src/net/snakedoc/jutils/SendEmail.java:24: error: package javax.mail does not exist
[javac] import javax.mail.Transport;
[javac] ^
[javac] /usr/share/tomcat6/.jenkins/jobs/JUtils-Nightly/workspace/src/net/snakedoc/jutils/SendEmail.java:25: error: package javax.mail.internet does not exist
[javac] import javax.mail.internet.AddressException;
[javac] ^
[javac] /usr/share/tomcat6/.jenkins/jobs/JUtils-Nightly/workspace/src/net/snakedoc/jutils/SendEmail.java:26: error: package javax.mail.internet does not exist
[javac] import javax.mail.internet.InternetAddress;
[javac] ^
[javac] /usr/share/tomcat6/.jenkins/jobs/JUtils-Nightly/workspace/src/net/snakedoc/jutils/SendEmail.java:27: error: package javax.mail.internet does not exist
[javac] import javax.mail.internet.MimeMessage;
[javac] ^
[javac] /usr/share/tomcat6/.jenkins/jobs/JUtils-Nightly/workspace/src/net/snakedoc/jutils/SendEmail.java:51: error: cannot find symbol
[javac] throws AddressException, MessagingException {
[javac] ^
[javac] symbol: class AddressException
[javac] location: class SendEmail
[javac] /usr/share/tomcat6/.jenkins/jobs/JUtils-Nightly/workspace/src/net/snakedoc/jutils/SendEmail.java:51: error: cannot find symbol
[javac] throws AddressException, MessagingException {
[javac] ^
[javac] symbol: class MessagingException
[javac] location: class SendEmail
[javac] /usr/share/tomcat6/.jenkins/jobs/JUtils-Nightly/workspace/src/net/snakedoc/jutils/SendEmail.java:63: error: cannot find symbol
[javac] Session session = Session.getDefaultInstance(props, null);
[javac] ^
[javac] symbol: class Session
[javac] location: class SendEmail
[javac] /usr/share/tomcat6/.jenkins/jobs/JUtils-Nightly/workspace/src/net/snakedoc/jutils/SendEmail.java:63: error: cannot find symbol
[javac] Session session = Session.getDefaultInstance(props, null);
[javac] ^
[javac] symbol: variable Session
[javac] location: class SendEmail
[javac] /usr/share/tomcat6/.jenkins/jobs/JUtils-Nightly/workspace/src/net/snakedoc/jutils/SendEmail.java:64: error: cannot find symbol
[javac] MimeMessage message = new MimeMessage(session);
[javac] ^
[javac] symbol: class MimeMessage
[javac] location: class SendEmail
[javac] /usr/share/tomcat6/.jenkins/jobs/JUtils-Nightly/workspace/src/net/snakedoc/jutils/SendEmail.java:64: error: cannot find symbol
[javac] MimeMessage message = new MimeMessage(session);
[javac] ^
[javac] symbol: class MimeMessage
[javac] location: class SendEmail
[javac] /usr/share/tomcat6/.jenkins/jobs/JUtils-Nightly/workspace/src/net/snakedoc/jutils/SendEmail.java:65: error: cannot find symbol
[javac] message.setFrom(new InternetAddress(from));
[javac] ^
[javac] symbol: class InternetAddress
[javac] location: class SendEmail
[javac] /usr/share/tomcat6/.jenkins/jobs/JUtils-Nightly/workspace/src/net/snakedoc/jutils/SendEmail.java:67: error: cannot find symbol
[javac] InternetAddress[] toAddress = new InternetAddress[to.length];
[javac] ^
[javac] symbol: class InternetAddress
[javac] location: class SendEmail
[javac] /usr/share/tomcat6/.jenkins/jobs/JUtils-Nightly/workspace/src/net/snakedoc/jutils/SendEmail.java:67: error: cannot find symbol
[javac] InternetAddress[] toAddress = new InternetAddress[to.length];
[javac] ^
[javac] symbol: class InternetAddress
[javac] location: class SendEmail
[javac] /usr/share/tomcat6/.jenkins/jobs/JUtils-Nightly/workspace/src/net/snakedoc/jutils/SendEmail.java:71: error: cannot find symbol
[javac] toAddress[i] = new InternetAddress(to[i]);
[javac] ^
[javac] symbol: class InternetAddress
[javac] location: class SendEmail
[javac] /usr/share/tomcat6/.jenkins/jobs/JUtils-Nightly/workspace/src/net/snakedoc/jutils/SendEmail.java:76: error: package Message does not exist
[javac] message.addRecipient(Message.RecipientType.TO, toAddress[i]);
[javac] ^
[javac] /usr/share/tomcat6/.jenkins/jobs/JUtils-Nightly/workspace/src/net/snakedoc/jutils/SendEmail.java:82: error: cannot find symbol
[javac] Transport transport = session.getTransport("smtp");
[javac] ^
[javac] symbol: class Transport
[javac] location: class SendEmail
[javac] 19 errors
BUILD FAILED
/usr/share/tomcat6/.jenkins/jobs/JUtils-Nightly/workspace/build.xml:54: Compile failed; see the compiler error output for details.
Total time: 4 seconds
Build step 'Invoke Ant' marked build as failure
Finished: FAILURE
编辑:(Ant构建脚本)
您当前的所有错误都与Java Mail有关
- 您可以从页面下载JavaMail API库
- 您可以从第页下载JEE6 SDK
<dependency>
<groupId>javax</groupId>
<artifactId>javaee-web-api</artifactId>
<version>6.0</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>javax.mail</groupId>
<artifactId>mail</artifactId>
<version>1.4.6</version>
</dependency>
爪哇
javaeewebapi
6
假如
javax.mail
邮件
1.4.6
我从Oracle下载了JavaEE供您参考,这通常被称为GlassFish。您尝试过吗?Tomcat是Web服务器而不是应用程序服务器,它不符合EE。虽然您对Java邮件库的理解是正确的,但我不明白OP为什么不能从JBoss或GlassFish jars=\。这将是一种获取编译依赖项的奇怪方式,对于编译依赖项,您只需要API库。JBoss/Glassfish/Weblogic等都提供了实现库。并不是所有的JBoss都包含容易提取的JAR——例如,JBoss7使用OSGI模块。我也有同样的编译错误。。。我原以为JBoss会拥有我的项目需要编译的所有东西。。但也许我做错了什么。查看我的Ant构建脚本上面的编辑…@Preception这对我来说很奇怪,我正在浏览提取的JBoss7目录,只在OSGI目录和一些名为javax的目录中运行。。。但是找不到我需要的JAR,或者似乎不知道如何将所有JAR加载到我的类路径中进行编译。@SnakeDoc-是的,JBoss7使用隐式模块来声明Java EE API依赖项。您可以在JBoss分发文件夹的modules/javaee/api/main下看到module.xml文件。但是里面没有罐子。我将在我的答案中添加JavaEE的Maven依赖项,以及在尝试设置Ant构建时下载JEEAPI的位置。
<dependency>
<groupId>javax</groupId>
<artifactId>javaee-web-api</artifactId>
<version>6.0</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>javax.mail</groupId>
<artifactId>mail</artifactId>
<version>1.4.6</version>
</dependency>