Как я могу отредактировать путь кувшина в муравье - PullRequest
0 голосов
/ 26 апреля 2011

Я хотел бы заменить путь к существующему банку на основе ОС.

что-то вроде ниже:
в окнах: C: /apps/workspace/libs/rpm.jar
в unix: /user-id/projectname/libs/rpm.jar

Есть ли способ удалить C: / apps / workspace / libs из C: /apps/workspace/libs/rpm.jar.

редактирование моего вопроса:

Спасибо, Лив, но у меня много таких библиотек. сейчас я создаю текстовый файл под названием "build.start.properties" со всеми библиотеками, например
/gwt/X/2.1.0/gwt-servlet.jar
/gwt/X/2.1.0/gwt-user.jar /gwt/X/2.1.0/gwt-dev.jar
/gwt/X/2.1.0/gwt-soyc-vis.jar /log4j/X/1.2.15/log4j-1.2.15.jar /GWT_LOG/X/3.0.3/gwt-log-3.0.3.jar /GWT_MATH/X/2.1/gwt-math-2.1.jar /GWT_MATH/X/2.1/gwt-math-server-2.1.jar /GWT_Commons_Logging/X/0.3/GWT-commons-logging/gwt-commons-logging-0.3.jar
/GWT_Commons_Logging/X/0.3/GWT-commons-logging/gwt-commons-logging-service-0.3.jar

И загрузка их в classptah используя следующую цель

    <loadfile property="jars.list.property" srcfile="mybuild/build.start.properties">
        <filterchain>
            <expandproperties />
            <striplinecomments>
                <comment value="#" />
            </striplinecomments>
            <tokenfilter>
                <ignoreblank />
            </tokenfilter>
            <prefixlines prefix="," />
            <striplinebreaks />
        </filterchain>
    </loadfile>
    <filelist id="build.libs" dir="" files="${jars.list.property}" />

    <pathconvert targetos="unix" property="build_unix.libs" refid="build.libs">

        <map from="C:" to="${unix.xenv}" />
        <map from="" to="${unix.xenv}" />
    </pathconvert>
    <pathconvert targetos="windows" property="build_windows.libs" refid="build.libs">
        <map from="C:" to="${windows.xenv}" />
        <map from="" to="${windows.xenv}" />
    </pathconvert>
    <path id="build.classpath.id">
        <pathelement path="${build_windows.libs}" />
        <pathelement path="${build_unix.libs}" />
    </path>
    <echo message="Build Libraries classpath: ${toString:build.classpath.id}" />
</target>

из вышеуказанной цели build.classpath.id выглядит так /gwt/X/2.1.0/gwt-servlet.jar:/gwt/X/2.1.0/gwt-user.jar:/gwt/X/2.1.0/gwt-dev.jar:/gwt/X/ 2.1.0 / GWT-soyc-vis.jar: /log4j/X/1.2.15/log4j-1.2.15.jar: /GWT_LOG/X/3.0.3/gwt-log-3.0.3.jar: GWT_MATH / X / 2,1 / GWT-математика-2.1.jar: /GWT_MATH/X/2.1/gwt-math-server-2.1.jar: /GWT_Commons_Logging/X/0.3/GWT-commons-logging/gwt-commons-logging-0.3. баночка: /GWT_Commons_Logging/X/0.3/GWT-commons-logging/gwt-commons-logging-service-0.3.jar

Когда я работаю в Unix, мне нужно выбрать только имена файлов jar из файла "build.start.properties" и путь обновления, подобный этому

/ WebContent / WEB_INF / Библиотека / GWT-servlet.jar: /WebContent/WEB_INF/lib/gwt-user.jar: /WebContent/WEB_INF/lib/gwt-dev.jar: / WebContent / WEB_INF / Библиотека / GWT -soyc-vis.jar: /WebContent/WEB_INF/lib/log4j-1.2.15.jar: /WebContent/WEB_INF/lib/gwt-log-3.0.3.jar: / WebContent / WEB_INF / Библиотека / GWT-мате- 2.1.jar: /WebContent/WEB_INF/lib/gwt-math-server-2.1.jar: /WebContent/WEB_INF/lib/gwt-commons-logging-0.3.jar: / WebContent / WEB_INF / Библиотека / GWT-Обще-каротаж -сервис-0.3.jar

Ответы [ 2 ]

0 голосов
/ 26 апреля 2011

вы можете использовать задачу муравья - следующее взято из документации (http://ant.apache.org/manual/Tasks/condition.html):

<condition property="isMacOsButNotMacOsX">
    <and>
      <os family="mac"/>

      <not>
        <os family="unix"/>

      </not>
    </and>
</condition>
0 голосов
/ 26 апреля 2011

Всегда используйте относительные пути, так что вы не будете полагаться на библиотеку, находящуюся в заданном месте, и на базовую ОС.

Хотя это не отвечает на то, что именно вы просили, но предложение поможет вам в долгосрочной перспективе. Также, если возможно, используйте Ivy + Ant (или Maven) для управления зависимостями.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...