Муравей путь конвертировать - PullRequest
2 голосов
/ 08 июня 2011

Добрый день

Я запускаю ant для обработки некоторого кода, теперь у меня есть путь "com / source / project" в свойствах, но мне нужно передать "com.source.project" в мой код Java, в любом случае я могу преобразовать "/" в "" используя команду ant

спасибо

Ответы [ 2 ]

3 голосов
/ 08 июня 2011

PropertyRegex задача работает для вас, но вам нужно установить ant-contrib .

<project>

<taskdef resource="net/sf/antcontrib/antcontrib.properties">
  <classpath>
    <pathelement location="./ant-contrib-1.0b3.jar"/>
  </classpath>
</taskdef>

<property name="path" value="com/source/project"/>
<echo message="Path=${path}"/>

<propertyregex property="java.package.name"
              input="${path}"
              regexp="/"
              replace="."
              global="true"
              defaultValue="${path}" />

<echo message="package=${java.package.name}"/>
</project>
0 голосов
/ 09 июня 2011

Вот несколько завершенных проектов, в которых используется Ant Plugin Flaka .Мне также пришлось заменить $ {path.separator} на '.'начать несколько классов Java.Смотрите комментарии, начинающиеся с ';'

<project xmlns:fl="antlib:it.haefelinger.flaka">

  <fl:install-property-handler/>

  <property name="srcroot" value="path/to/srcrootdir"/>
  <property name="classroot" value="path/to/classrootdir"/>

  <!-- determine all main classes -->
  <fileset dir="${srcroot}" includes="**/*.java" id="mainclasses">
    <contains text="public static void main"/>
  </fileset>

  <!-- iterate over those main classes and
       call the corresponding classfile -->
  <fl:for var="file" in="split('${toString:mainclasses}', ';')">
    <fl:let>
      ; strip the .java Extension
      file = replace(file, '', '.java')
      ; replace fileseparator with '.'
      ; on Windows you have to use the following line
      ; replace(file, '\.', '${file.separator}${file.separator}')
      file = replace(file, '\.', '${file.separator}')
      </fl:let>
    <fl:echo>
      starting => #{file} in ${classroot}
    </fl:echo>
    <java classname="#{file}">
      <classpath>
       <!--
         when using a fileset you'll get a
         java.util.zip.ZipException because you're
         referencing classfiles and no jars
         therefore you have to use
         pathelement and location
       -->
       <pathelement location="${classroot}"/>
      </classpath>
    </java>
  </fl:for>

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