Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Java tools & IDE's > Перемещение класса при билде maven


Автор: golubsv 30.8.2010, 10:38
Есть определенный класс, лежит в определенном пакете (com.foo.Bar)
Нужно создать подпакет(com.foo.subfoo) и переместить его туда(com.foo.subfoo.Bar), и так чтоб все скомпилилось. Пните где искать пожалуйста smile

Автор: Skipy 1.9.2010, 15:04
Это умеет делать любая IDE. При перемещении отслеживаются зависимости и при необходимости меняется код.

Автор: LSD 1.9.2010, 17:33
Код

<project>
  ...
  <properties>
    <source.dir>com/foo</source.dir>
    <target.dir>${source.dir}/subfoo</target.dir>
    <target.package>com.foo.subfoo</target.package>
  </properties>
  ...
  <build>
  ...
    <resources>
      <resource>
        <directory>src/main/java-filter/${source.dir}</directory>
        <filtering>true</filtering>
        <targetPath>src/main/java/${target.dir}</targetPath>
      </resource>
      <resource>
        <directory>src/main/java-notfilter</directory>
        <filtering>false</filtering>
        <targetPath>src/main/java</targetPath>
      </resource>
    </resources>
  ...
  </build>
  ...
</project>

Код

package ${target.package};

public class Foo {
...
}

Автор: Skipy 1.9.2010, 18:47
LSD, а что будет с классами, которые ссылаются на перемещенный? Они скомпилируются?

Автор: LSD 1.9.2010, 22:29
Цитата(Skipy @  1.9.2010,  19:47 Найти цитируемый пост)
LSD, а что будет с классами, которые ссылаются на перемещенный? Они скомпилируются?

Если import делать:
Код

import ${target.package}.Foo;

и заменить во втором случае
Код

<filtering>false</filtering>

на
Код

<filtering>true</filtering>

то скомпилируются.

А вообще, тут явно недостаточно данных о том, что пытается реализовать автор. Может быть мое решение и не подойдет. И уж точно код писать будет одно мучение, ибо ни одна IDE такой изврат не поддерживает.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)