2015-06-30 2 views
1

Я работаю над проектом Java, который построен с муравьем, и до недавнего времени он работал безупречно. Теперь я получаю некоторые ошибки, которые я не понимаю (я новичок в ant), и, похоже, их довольно много. Я издевался над одним из них, но может быть больше проблем с основной проблемой, поэтому, если я не дам достаточно информации, пожалуйста, спросите меня больше. =)Почему значения в моих build.properties не распространяются через мою сборку муравьев?

Проблема, которую я издеваюсь, относится к моему файлу build.properties, который вызывает его, и корень build.xml для всего проекта. Когда я бег муравья из командной строки, как это:

> ant 

Он выводит:

(я бы не показать все, кроме первых 10 строк, но я сказал, чтобы всегда показывать полную мощность о действии)

C:\Depot\afischer_L09691\Mvision\Dev\EMV_VERACODE\emv>ant 
Buildfile: C:\Depot\afischer_L09691\Mvision\Dev\EMV_VERACODE\emv\build.xml 
    [echo] env.EMV_VOBS = C:\Depot\afischer_L09691\Mvision\MAIN\ 
    [echo] OUTPUT_DIR = classes 
    [echo] JAR_OUTPUT_DIR = C:\Depot\afischer_L09691\Mvision\Dev\EMV_VERACODE\emv\jar\Veracode 
    [echo] DEBUG_ON = ${DEBUG_ON} 
    [echo] DEBUG_LVL = ${DEBUG_LVL} 

buildSubDirs: 
    [echo] env.EMV_VOBS = C:\Depot\afischer_L09691\Mvision\MAIN\ 
    [echo] OUTPUT_DIR = classes 
    [echo] JAR_OUTPUT_DIR = C:\Depot\afischer_L09691\Mvision\Dev\EMV_VERACODE\emv\jar\Veracode 
    [echo] DEBUG_ON = ${DEBUG_ON} 
    [echo] DEBUG_LVL = ${DEBUG_LVL} 

subdirs: 
    [echo] env.EMV_VOBS = C:\Depot\afischer_L09691\Mvision\MAIN\ 
    [echo] OUTPUT_DIR = classes 
    [echo] JAR_OUTPUT_DIR = C:\Depot\afischer_L09691\Mvision\Dev\EMV_VERACODE\emv\jar\Veracode 
    [echo] DEBUG_ON = ${DEBUG_ON} 
    [echo] DEBUG_LVL = ${DEBUG_LVL} 

echo_name: 
    [echo] idl 

init: 

create_dirs: 

compile: 
    [javac] C:\Depot\afischer_L09691\Mvision\Dev\EMV_VERACODE\emv\idl\build.xml:55: warning: 'includeantruntime' was not set, defaulting to build.sy 
sclasspath=last; set to false for repeatable builds 

build: 
    [echo] env.EMV_VOBS = C:\Depot\afischer_L09691\Mvision\MAIN\ 
    [echo] OUTPUT_DIR = classes 
    [echo] JAR_OUTPUT_DIR = C:\Depot\afischer_L09691\Mvision\Dev\EMV_VERACODE\emv\jar\Veracode 
    [echo] DEBUG_ON = ${DEBUG_ON} 
    [echo] DEBUG_LVL = ${DEBUG_LVL} 

buildSubDirs: 
    [echo] env.EMV_VOBS = C:\Depot\afischer_L09691\Mvision\MAIN\ 
    [echo] OUTPUT_DIR = classes 
    [echo] JAR_OUTPUT_DIR = C:\Depot\afischer_L09691\Mvision\Dev\EMV_VERACODE\emv\jar\Veracode 
    [echo] DEBUG_ON = ${DEBUG_ON} 
    [echo] DEBUG_LVL = ${DEBUG_LVL} 

subdirs: 
    [echo] env.EMV_VOBS = C:\Depot\afischer_L09691\Mvision\MAIN\ 
    [echo] OUTPUT_DIR = classes 
    [echo] JAR_OUTPUT_DIR = C:\Depot\afischer_L09691\Mvision\Dev\EMV_VERACODE\emv\jar\Veracode 
    [echo] DEBUG_ON = ${DEBUG_ON} 
    [echo] DEBUG_LVL = ${DEBUG_LVL} 

buildSubDirs: 
    [echo] env.EMV_VOBS = C:\Depot\afischer_L09691\Mvision\MAIN\ 
    [echo] OUTPUT_DIR = classes 
    [echo] JAR_OUTPUT_DIR = C:\Depot\afischer_L09691\Mvision\Dev\EMV_VERACODE\emv\jar\Veracode 
    [echo] DEBUG_ON = ${DEBUG_ON} 
    [echo] DEBUG_LVL = ${DEBUG_LVL} 

subdirs: 
    [echo] env.EMV_VOBS = C:\Depot\afischer_L09691\Mvision\MAIN\ 
    [echo] OUTPUT_DIR = classes 
    [echo] JAR_OUTPUT_DIR = C:\Depot\afischer_L09691\Mvision\Dev\EMV_VERACODE\emv\jar\Veracode 
    [echo] DEBUG_ON = ${DEBUG_ON} 
    [echo] DEBUG_LVL = ${DEBUG_LVL} 

echo_name: 
    [echo] AddDefDbNavView 

init: 

create_dirs: 

compile: 
    [javac] C:\Depot\afischer_L09691\Mvision\Dev\EMV_VERACODE\emv\utilities\java\AddDefaultDbNavView\build.xml:7: warning: 'includeantruntime' was n 
ot set, defaulting to build.sysclasspath=last; set to false for repeatable builds 

make_jar: 

build: 
    [echo] env.EMV_VOBS = C:\Depot\afischer_L09691\Mvision\MAIN\ 
    [echo] OUTPUT_DIR = classes 
    [echo] JAR_OUTPUT_DIR = C:\Depot\afischer_L09691\Mvision\Dev\EMV_VERACODE\emv\jar\Veracode 
    [echo] DEBUG_ON = ${DEBUG_ON} 
    [echo] DEBUG_LVL = ${DEBUG_LVL} 

echo_name: 
    [echo] EmvDbTrans 

init: 

create_dirs: 

compile: 
    [javac] C:\Depot\afischer_L09691\Mvision\Dev\EMV_VERACODE\emv\utilities\java\EmvDbToOracle\build.xml:7: warning: 'includeantruntime' was not set 
, defaulting to build.sysclasspath=last; set to false for repeatable builds 

make_jar: 

build: 
    [echo] env.EMV_VOBS = C:\Depot\afischer_L09691\Mvision\MAIN\ 
    [echo] OUTPUT_DIR = classes 
    [echo] JAR_OUTPUT_DIR = C:\Depot\afischer_L09691\Mvision\Dev\EMV_VERACODE\emv\jar\Veracode 
    [echo] DEBUG_ON = ${DEBUG_ON} 
    [echo] DEBUG_LVL = ${DEBUG_LVL} 

echo_name: 
    [echo] EmvUtils 

init: 

create_dirs: 

compile: 
    [javac] C:\Depot\afischer_L09691\Mvision\Dev\EMV_VERACODE\emv\utilities\java\EmvUtils\build.xml:7: warning: 'includeantruntime' was not set, def 
aulting to build.sysclasspath=last; set to false for repeatable builds 
    [javac] Compiling 10 source files to C:\Depot\afischer_L09691\Mvision\Dev\EMV_VERACODE\emv\utilities\java\EmvUtils\classes 
    [javac] 
    [javac]   WARNING 
    [javac] 
    [javac] The -source switch defaults to 1.8 in JDK 1.8. 
    [javac] If you specify -target 1.5 you now must also specify -source 1.5. 
    [javac] Ant will implicitly add -source 1.5 for you. Please change your build file. 
    [javac] warning: [options] bootstrap class path not set in conjunction with -source 1.5 
    [javac] warning: [options] source value 1.5 is obsolete and will be removed in a future release 
    [javac] warning: [options] target value 1.5 is obsolete and will be removed in a future release 
    [javac] warning: [options] To suppress warnings about obsolete options, use -Xlint:-options. 
    [javac] C:\Depot\afischer_L09691\Mvision\Dev\EMV_VERACODE\emv\utilities\java\EmvUtils\src\EmvUtils\EmvConnectionManager.java:41: error: package 
EmvIdl does not exist 
    [javac]  public EmvIdl.EmvSessionManager m_emv_session_manager; 
    [javac]    ^
    [javac] C:\Depot\afischer_L09691\Mvision\Dev\EMV_VERACODE\emv\utilities\java\EmvUtils\src\EmvUtils\EmvConnectionManager.java:46: error: package 
EmvIdl does not exist 
    [javac]  public EmvIdl.AdminServer m_admin_server; 
    [javac]    ^
    [javac] C:\Depot\afischer_L09691\Mvision\Dev\EMV_VERACODE\emv\utilities\java\EmvUtils\src\EmvUtils\EmvConnectionManager.java:51: error: package 
EmvIdl does not exist 
    [javac]  public EmvIdl.FigureToPngImage m_figure_to_png_image_server; 
    [javac]    ^
    [javac] C:\Depot\afischer_L09691\Mvision\Dev\EMV_VERACODE\emv\utilities\java\EmvUtils\src\EmvUtils\EmvConnectionManager.java:189: error: package 
EmvIdl does not exist 
    [javac]    m_emv_session_manager = EmvIdl.EmvSessionManagerHelper.narrow(obj); 
    [javac]           ^
    [javac] C:\Depot\afischer_L09691\Mvision\Dev\EMV_VERACODE\emv\utilities\java\EmvUtils\src\EmvUtils\EmvConnectionManager.java:219: error: package 
EmvIdl does not exist 
    [javac]    m_admin_server = EmvIdl.AdminServerHelper.narrow(obj); 
    [javac]         ^
    [javac] C:\Depot\afischer_L09691\Mvision\Dev\EMV_VERACODE\emv\utilities\java\EmvUtils\src\EmvUtils\EmvConnectionManager.java:252: error: package 
EmvIdl does not exist 
    [javac]    m_figure_to_png_image_server = EmvIdl.FigureToPngImageHelper.narrow(obj); 
    [javac]            ^
    [javac] Note: C:\Depot\afischer_L09691\Mvision\Dev\EMV_VERACODE\emv\utilities\java\EmvUtils\src\EmvUtils\web\DumpRequest.java uses or overrides 
a deprecated API. 
    [javac] Note: Recompile with -Xlint:deprecation for details. 
    [javac] Note: C:\Depot\afischer_L09691\Mvision\Dev\EMV_VERACODE\emv\utilities\java\EmvUtils\src\EmvUtils\web\DumpRequest.java uses unchecked or 
unsafe operations. 
    [javac] Note: Recompile with -Xlint:unchecked for details. 
    [javac] 6 errors 
    [javac] 4 warnings 

BUILD FAILED 
C:\Depot\afischer_L09691\Mvision\Dev\EMV_VERACODE\emv\ant\commonbuild.xml:12: The following error occurred while executing this line: 
C:\Depot\afischer_L09691\Mvision\Dev\EMV_VERACODE\emv\build.xml:30: The following error occurred while executing this line: 
C:\Depot\afischer_L09691\Mvision\Dev\EMV_VERACODE\emv\ant\commonbuild.xml:12: The following error occurred while executing this line: 
C:\Depot\afischer_L09691\Mvision\Dev\EMV_VERACODE\emv\utilities\build.xml:6: The following error occurred while executing this line: 
C:\Depot\afischer_L09691\Mvision\Dev\EMV_VERACODE\emv\ant\commonbuild.xml:12: The following error occurred while executing this line: 
C:\Depot\afischer_L09691\Mvision\Dev\EMV_VERACODE\emv\utilities\java\build.xml:8: The following error occurred while executing this line: 
C:\Depot\afischer_L09691\Mvision\Dev\EMV_VERACODE\emv\utilities\java\EmvUtils\build.xml:7: Compile failed; see the compiler error output for details 
. 

Total time: 1 second 

Здесь вы можете увидеть некоторые echo с от моих попыток отладки. Если вы посмотрите на значение OUTPUT_DIR, оно оценивается как classes, а также env.EMV_VOBS и JAR_OUTPUT_DIR, но DEBUG_ON и DEBUG_LVL не было. Это проблема ... не используются все значения от build.properties.

Если вместо этого я бегу муравья построить так:

>ant -propertyfile ./ant/build.properties 

Он выводит это:

C:\Depot\afischer_L09691\Mvision\Dev\EMV_VERACODE\emv>ant -propertyfile ./ant/build.properties 
Buildfile: C:\Depot\afischer_L09691\Mvision\Dev\EMV_VERACODE\emv\build.xml 
    [echo] env.EMV_VOBS = C:\Depot\afischer_L09691\Mvision\MAIN\ 
    [echo] OUTPUT_DIR = classes 
    [echo] JAR_OUTPUT_DIR = C:\Depot\afischer_L09691\Mvision\Dev\EMV_VERACODE\emv\jar\Veracode 
    [echo] DEBUG_ON = on 
    [echo] DEBUG_LVL = lines,vars,source 

buildSubDirs: 
    [echo] env.EMV_VOBS = C:\Depot\afischer_L09691\Mvision\MAIN\ 
    [echo] OUTPUT_DIR = classes 
    [echo] JAR_OUTPUT_DIR = C:\Depot\afischer_L09691\Mvision\Dev\EMV_VERACODE\emv\jar\Veracode 
    [echo] DEBUG_ON = on 
    [echo] DEBUG_LVL = lines,vars,source 

subdirs: 
    [echo] env.EMV_VOBS = C:\Depot\afischer_L09691\Mvision\MAIN\ 
    [echo] OUTPUT_DIR = classes 
    [echo] JAR_OUTPUT_DIR = C:\Depot\afischer_L09691\Mvision\Dev\EMV_VERACODE\emv\jar\Veracode 
    [echo] DEBUG_ON = on 
    [echo] DEBUG_LVL = lines,vars,source 

echo_name: 
    [echo] idl 

init: 

create_dirs: 

compile: 
    [javac] C:\Depot\afischer_L09691\Mvision\Dev\EMV_VERACODE\emv\idl\build.xml:55: warning: 'includeantruntime' was not set, defaulting to build.sy 
sclasspath=last; set to false for repeatable builds 

build: 
    [echo] env.EMV_VOBS = C:\Depot\afischer_L09691\Mvision\MAIN\ 
    [echo] OUTPUT_DIR = classes 
    [echo] JAR_OUTPUT_DIR = C:\Depot\afischer_L09691\Mvision\Dev\EMV_VERACODE\emv\jar\Veracode 
    [echo] DEBUG_ON = on 
    [echo] DEBUG_LVL = lines,vars,source 

buildSubDirs: 
    [echo] env.EMV_VOBS = C:\Depot\afischer_L09691\Mvision\MAIN\ 
    [echo] OUTPUT_DIR = classes 
    [echo] JAR_OUTPUT_DIR = C:\Depot\afischer_L09691\Mvision\Dev\EMV_VERACODE\emv\jar\Veracode 
    [echo] DEBUG_ON = on 
    [echo] DEBUG_LVL = lines,vars,source 

subdirs: 
    [echo] env.EMV_VOBS = C:\Depot\afischer_L09691\Mvision\MAIN\ 
    [echo] OUTPUT_DIR = classes 
    [echo] JAR_OUTPUT_DIR = C:\Depot\afischer_L09691\Mvision\Dev\EMV_VERACODE\emv\jar\Veracode 
    [echo] DEBUG_ON = on 
    [echo] DEBUG_LVL = lines,vars,source 

buildSubDirs: 
    [echo] env.EMV_VOBS = C:\Depot\afischer_L09691\Mvision\MAIN\ 
    [echo] OUTPUT_DIR = classes 
    [echo] JAR_OUTPUT_DIR = C:\Depot\afischer_L09691\Mvision\Dev\EMV_VERACODE\emv\jar\Veracode 
    [echo] DEBUG_ON = on 
    [echo] DEBUG_LVL = lines,vars,source 

subdirs: 
    [echo] env.EMV_VOBS = C:\Depot\afischer_L09691\Mvision\MAIN\ 
    [echo] OUTPUT_DIR = classes 
    [echo] JAR_OUTPUT_DIR = C:\Depot\afischer_L09691\Mvision\Dev\EMV_VERACODE\emv\jar\Veracode 
    [echo] DEBUG_ON = on 
    [echo] DEBUG_LVL = lines,vars,source 

echo_name: 
    [echo] AddDefDbNavView 

init: 

create_dirs: 

compile: 
    [javac] C:\Depot\afischer_L09691\Mvision\Dev\EMV_VERACODE\emv\utilities\java\AddDefaultDbNavView\build.xml:7: warning: 'includeantruntime' was n 
ot set, defaulting to build.sysclasspath=last; set to false for repeatable builds 

make_jar: 

build: 
    [echo] env.EMV_VOBS = C:\Depot\afischer_L09691\Mvision\MAIN\ 
    [echo] OUTPUT_DIR = classes 
    [echo] JAR_OUTPUT_DIR = C:\Depot\afischer_L09691\Mvision\Dev\EMV_VERACODE\emv\jar\Veracode 
    [echo] DEBUG_ON = on 
    [echo] DEBUG_LVL = lines,vars,source 

echo_name: 
    [echo] EmvDbTrans 

init: 

create_dirs: 
    [mkdir] Created dir: C:\Depot\afischer_L09691\Mvision\Dev\EMV_VERACODE\emv\utilities\java\EmvDbToOracle\${env.EMV_JAR_OUTPUT} 

compile: 
    [javac] C:\Depot\afischer_L09691\Mvision\Dev\EMV_VERACODE\emv\utilities\java\EmvDbToOracle\build.xml:7: warning: 'includeantruntime' was not set 
, defaulting to build.sysclasspath=last; set to false for repeatable builds 

make_jar: 
     [jar] Building jar: C:\Depot\afischer_L09691\Mvision\Dev\EMV_VERACODE\emv\utilities\java\EmvDbToOracle\${env.EMV_JAR_OUTPUT}\EmvDbTrans.jar 

build: 
    [echo] env.EMV_VOBS = C:\Depot\afischer_L09691\Mvision\MAIN\ 
    [echo] OUTPUT_DIR = classes 
    [echo] JAR_OUTPUT_DIR = C:\Depot\afischer_L09691\Mvision\Dev\EMV_VERACODE\emv\jar\Veracode 
    [echo] DEBUG_ON = on 
    [echo] DEBUG_LVL = lines,vars,source 
.............. 
    [javac] Note: C:\Depot\afischer_L09691\Mvision\Dev\EMV_VERACODE\emv\utilities\java\EmvUtils\src\EmvUtils\web\DumpRequest.java uses unchecked or 
unsafe operations. 
    [javac] Note: Recompile with -Xlint:unchecked for details. 
    [javac] 30 errors 
    [javac] 4 warnings 

BUILD FAILED 
C:\Depot\afischer_L09691\Mvision\Dev\EMV_VERACODE\emv\ant\commonbuild.xml:12: The following error occurred while executing this line: 
C:\Depot\afischer_L09691\Mvision\Dev\EMV_VERACODE\emv\build.xml:30: The following error occurred while executing this line: 
C:\Depot\afischer_L09691\Mvision\Dev\EMV_VERACODE\emv\ant\commonbuild.xml:12: The following error occurred while executing this line: 
C:\Depot\afischer_L09691\Mvision\Dev\EMV_VERACODE\emv\utilities\build.xml:6: The following error occurred while executing this line: 
C:\Depot\afischer_L09691\Mvision\Dev\EMV_VERACODE\emv\ant\commonbuild.xml:12: The following error occurred while executing this line: 
C:\Depot\afischer_L09691\Mvision\Dev\EMV_VERACODE\emv\utilities\java\build.xml:8: The following error occurred while executing this line: 
C:\Depot\afischer_L09691\Mvision\Dev\EMV_VERACODE\emv\utilities\java\EmvUtils\build.xml:7: Compile failed; see the compiler error output for details 
. 

Total time: 1 second 

Это странно для меня, потому что третья линия commonbuild.xml

<property file="${env.EMV_VOBS}/emv/ant/build.properties"/> 

должен импортировать мой файл build.properties, и это вроде как ... Если вы посмотрите на выходе от > ant вы увидите, что OUTPUT_DIR = classes, который был взят из build.properties Я предполагаю.

Итак ...

  • Почему некоторые из значений в build.properties используются в то время как другие не являются?
  • Какие еще проблемы вы видите в этих файлах?

Это только первый выпуск того, что кажется многим, поэтому любые критические замечания по приведенному ниже коду приветствуются; Я хочу понять все, что могу о этих файлах.

Код Приложение:

build.xml:

<!-- 

To run this, type in ant in the emv vobs directory (c:\view\emv) 

    ant clean - to clean the build environment 
    ant  - to build the environment 
--> 
<project name="Emv" default="build" basedir="."> 

    <import file="ant/commonbuild.xml" /> 

    <target name="subdirs"> 
     <ant dir="idl" target="${param1}"/>  
     <ant dir="utilities" target="${param1}"/>  
     <ant dir="admin_panel" target="${param1}"/> 
     <ant dir="emv_monitor" target="${param1}"/>  
     <ant dir="integratedClient" target="${param1}"/>  
     <ant dir="web_server" target="${param1}"/>  
     <ant dir="XY-Graphics" target="${param1}"/>  
    </target> 

    <target name="build" depends="buildSubDirs" /> 
    <target name="clean" depends="cleanSubDirs" /> 

</project> 

commonbuild.XML:

<project name="commonbuild" default="buildSubDirs" basedir="."> 

    <property environment="env"/> 
    <property file="${env.EMV_VOBS}/emv/ant/build.properties"/> 
    <echo message="env.EMV_VOBS = ${env.EMV_VOBS}"/> 
    <echo message="OUTPUT_DIR = ${OUTPUT_DIR}"/> 
    <echo message="JAR_OUTPUT_DIR = ${env.EMV_JAR_OUTPUT}"/> 
    <echo message="DEBUG_ON = ${DEBUG_ON}"/> 
    <echo message="DEBUG_LVL = ${DEBUG_LVL}"/> 

    <target name="buildSubDirs"> 
     <antcall target="subdirs">  
      <param name="param1" value="build"/> 
     </antcall> 
    </target> 

    <target name="cleanSubDirs"> 
     <antcall target="subdirs">  
      <param name="param1" value="clean"/> 
     </antcall> 
    </target> 

    <target name="echo_name" depends=""> 
    <echo message="${ant.project.name}"/> 
    </target> 

    <target name="init" depends="echo_name"> 
    <property name="project_name" value="${ant.project.name}"/> 
    <property name="jar"   value="${JAR_OUTPUT_DIR}/${project_name}.jar"/> 
    <tstamp/> 
    </target> 

    <target name="clean" depends="init"> 
    <delete dir="${OUTPUT_DIR}"/> 
    <delete file="${jar}"/> 
    </target> 

    <target name="create_dirs" depends="init"> 
    <mkdir dir="${OUTPUT_DIR}"/> 
    <mkdir dir="${JAR_OUTPUT_DIR}"/> 
    </target> 

</project> 

build.properties:

OUTPUT_DIR=classes 
DEBUG_ON=on 
DEBUG_LVL=lines,vars,source 
JAR_OUTPUT_DIR=${env.EMV_JAR_OUTPUT} 
TOMCAT_HOME=${env.TOMCAT_HOME} 
ant.build.javac.target=1.5 
+1

Пожалуйста, добавьте '' к вашим целям, чтобы сбросить все содержимое свойств. – Stavr00

+0

@ Stavr00 Я только что понял, что происходит, я отвечу на мой вопрос, если вы хотите посмотреть, что было. Я так смущен. =/ – Makenbaccon

+0

@ Stavr00 Я думаю, что если бы я знал об этом теге раньше, мое замешательство было бы значительно уменьшено. Спасибо за вашу помощь! – Makenbaccon

ответ

0

Для тех, кто заинтересован, я нашел источник моей проблемы.

Я работаю на машине с несколькими ветвями. Меня попросили сделать что-то в главном ветви на моей машине и установить некоторые переменные среды и перешли к следующей проблеме. Несколько недель спустя эти файлы муравьев используют те же самые переменные среды, и когда я пошел строить ветку Dev, я забыл, насколько важна одна из этих переменных. Я изменил все, кроме одного, и, конечно, это был самый важный. =/

Итак, в конце концов, я пытался скомпилировать одну базу кода с использованием файлов build.xml из другого и передать мой build.properties вручную, что еще больше запутыло мою проблему. Урок в этом? Мне нужно действительно проверить свою среду, когда у меня есть проблемы, а не просто предположить, что я правильно все установил.

Спасибо, что прочитали мое бедственное положение, я собираюсь спрятаться в углу. =)