我很難讓我的簡單的Java EE源代碼在運行於tomcat6(在Centos 6.x上)的Jenkins中編譯。我試過下載JBoss,但找不到Java EE jar文件,所以我可以將它們包含在我的ANT腳本中。我從甲骨文下載了JavaEE,這是一個.sh shell腳本(80mb),我想通過提取或編譯各種jar來「安裝」java ee。問題是它不會運行,因爲Oracle shell腳本需要運行一個X11實例(GUI)......但這是一個無頭的服務器。tomcat + Jenkins + Java EE源代碼=編譯失敗
目標是每晚都有一個使用JavaEE的項目。
我需要以某種方式找到如何使用JBoss的只有它的java ee庫(所以我可以編譯我的代碼)或需要以某種方式獲得oracle的產品工作?或者是否有其他選項用於我的設置?
這裏是我的詹金斯/螞蟻日誌輸出:
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構建腳本)
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<project basedir="." default="build" name="JUtils">
<property environment="env"/>
<property name="ECLIPSE_HOME" value="../../../../../Program Files/eclipse-jee-juno-SR1-win32-x86_64/eclipse"/>
<property name="JAVAEE_HOME" value="/opt/jboss/modules/**"/>
<property name="debuglevel" value="source,lines,vars"/>
<property name="target" value="1.7"/>
<property name="source" value="1.7"/>
<property name="dest_dir" value="target"/>
<property name="tmp_dir" value="tmp"/>
<property name="jar_name" value="JUtils"/>
<path id="javaee.libraryclasspath">
<pathelement location="${JAVAEE_HOME}"/>
</path>
<tstamp>
<format property="build.datestamp" pattern="yyyy-MM-dd" locale="en,US"/>
</tstamp>
<path id="JUtils.classpath">
<pathelement location="bin"/>
<pathelement location="lib/h2-1.3.170.jar"/>
<pathelement location="lib/hsqldb.jar"/>
<pathelement location="lib/jt400.jar"/>
<pathelement location="lib/log4j-1.2.17.jar"/>
<pathelement location="lib/mariadb-java-client-1.1.1.jar"/>
<pathelement location="lib/mysql-connector-java-5.1.23-bin.jar"/>
<pathelement location="lib/postgresql-9.2-1002.jdbc4.jar"/>
<pathelement location="lib/sqlite-jdbc-3.7.2.jar"/>
<path refid="javaee.libraryclasspath"/>
</path>
<target name="init">
<mkdir dir="${dest_dir}"/>
<mkdir dir="${dest_dir}/${tmp_dir}"/>
<mkdir dir="${dest_dir}/${tmp_dir}/src"/>
<mkdir dir="${dest_dir}/${tmp_dir}/doc"/>
<mkdir dir="${dest_dir}/${tmp_dir}/lib"/>
<mkdir dir="${dest_dir}/${tmp_dir}/META-INF"/>
<copy includeemptydirs="false" todir="${dest_dir}">
<fileset dir="src">
<exclude name="**/*.java"/>
</fileset>
</copy>
<copy includeemptydirs="false" todir="${dest_dir}/${tmp_dir}">
<fileset dir=".">
<include name="**/*"/>
<exclude name="target/**"/>
<exclude name="logs/**"/>
<exclude name="bin/**"/>
</fileset>
</copy>
</target>
<target name="clean">
<delete dir="${dest_dir}"/>
</target>
<target depends="clean" name="cleanall"/>
<target depends="build-subprojects,build-project,jar" name="build"/>
<target name="build-subprojects"/>
<target depends="init" name="build-project">
<echo message="${ant.project.name}: ${ant.file}"/>
<javac debug="true" debuglevel="${debuglevel}" destdir="${dest_dir}/${tmp_dir}" includeantruntime="false" source="${source}" target="${target}">
<src path="src"/>
<classpath refid="JUtils.classpath"/>
</javac>
</target>
<target name="create_manifest">
<manifest file="${dest_dir}/${tmp_dir}/META-INF/MANIFEST.MF">
<attribute name="Manifest-Version" value="1.0"/>
<attribute name="Website" value="www.snakedoc.net"/>
<attribute name="Project" value="JUtils-${build.datestamp}"/>
</manifest>
</target>
<target depends="create_manifest" name="jar">
<jar destfile="${dest_dir}/${jar_name}-${build.datestamp}.jar" basedir="${dest_dir}/${tmp_dir}"/>
</target>
<target description="Build all projects which reference this project. Useful to propagate changes." name="build-refprojects"/>
<target description="copy Eclipse compiler jars to ant lib directory" name="init-eclipse-compiler">
<copy todir="${ant.library.dir}">
<fileset dir="${ECLIPSE_HOME}/plugins" includes="org.eclipse.jdt.core_*.jar"/>
</copy>
<unzip dest="${ant.library.dir}">
<patternset includes="jdtCompilerAdapter.jar"/>
<fileset dir="${ECLIPSE_HOME}/plugins" includes="org.eclipse.jdt.core_*.jar"/>
</unzip>
</target>
<target description="compile project with Eclipse compiler" name="build-eclipse-compiler">
<property name="build.compiler" value="org.eclipse.jdt.core.JDTCompilerAdapter"/>
<antcall target="build"/>
</target>
<target name="DBTest">
<java classname="net.snakedoc.jutils.testsuite.DBTest" failonerror="true" fork="yes">
<classpath refid="JUtils.classpath"/>
</java>
</target>
*我下載了甲骨文的JavaEE *爲您的信息,這就是俗稱的GlassFish。你用[TomEE](http://tomee.apache.org/apache-tomee.html)試過了嗎? – 2013-03-28 04:07:08
Tomcat是一個Web服務器而不是應用服務器,它不符合EE標準。 [看這裏](http://haveacafe.wordpress.com/2008/09/26/113/) – BevynQ 2013-03-28 04:10:37