Риски, связанные с изменением пакета по умолчанию в Java? - PullRequest
0 голосов
/ 29 октября 2009

У меня есть существующая кодовая база, которая вообще не упакована.

База кода - это все второстепенные Java-программы, разработанные для расширения / улучшения функциональности сторонней программы. Текущий процесс - один jar на класс, один класс на файл, без пакета.

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

Есть ли риски, связанные с этим, о которых мне нужно знать?

Ответы [ 4 ]

4 голосов
/ 29 октября 2009

Единственные риски связаны с устаревшими (или, более вероятно, неявными) определениями пакетов.

Например, все ваши файлы Java, поскольку они находятся в одном пакете, не должны будут импортировать друг друга. После миграции им нужно будет либо использовать полное имя классов в других пакетах, либо импортировать их.

Аналогичным образом, везде, где появляется имя класса (например, в конфигурационных файлах Spring, возможно, в файлах свойств, которые называют классы), его почти наверняка потребуется обновить до полностью определенного имени (например, com.company.package.MyClass. "вместо просто" MyClass ").

Это последний, который, вероятно, будет самым неприятным; если у вас есть хороший процесс сборки и вы соберетесь с нуля, любые ошибки Java должны быть обнаружены на этапе компиляции (если вы не используете что-то странное, например Class.forName("MyClass") в исходном коде) , Проблемы с файлом конфигурации, тем не менее, проявятся во время выполнения, если не будут решены, а затем, как правило, когда они собираются использоваться. Если редко используемая функция имеет конфигурацию Spring, ссылающуюся на один из ваших классов, и вы забыли изменить его, вы не узнаете об этом, пока он не выйдет из строя.

С другой стороны, приличные IDE будут иметь рефакторинг "переименовывать" или "менять пакет", что также должно позволять находить имена вашего класса в текстовых файлах.

0 голосов
/ 01 ноября 2009

Когда вы перемещаете класс в другой пакет или переименовываете пакет с помощью Eclipse, Eclipse достаточно умен, чтобы найти и изменить все ссылки. Все сразу. Попробуйте.

0 голосов
/ 29 октября 2009

Поместите все классы в пакет (включая любые файлы свойств и т. Д.) И создайте jar из этого пакета, а затем вы всегда можете включить этот jar-файл в свои проекты eclipse, выполнив опцию сборки проектов и включив ее как внешний jar-файл, затем просто импортируйте нужный класс / классы в проект, и все готово.

Пока вы включаете все ресурсы, которые нужны этим классам, в полученный пакет / jar, они будут работать так же, как и раньше, но их будет намного проще использовать в других проектах.

0 голосов
/ 29 октября 2009

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

...