Есть ли способ заказать свойства в архетипе maven? [Дубликат]

Даже зная его немного поздно, и даже зная, что это немного взломать, я использовал следующее решение для достижения желаемого результата. Если вы любите Java-Naming-Conventions, мой совет состоит в том, чтобы прекратить чтение здесь ...

Имея такой класс, определяя константы, сгруппированные пустыми классами, чтобы создать вид иерархии:

public class PERMISSION{
    public static class PAGE{
       public static final Long SEE = 1L; 
       public static final Long EDIT = 2L; 
       public static final Long DELETE = 4L; 
       ...
    }
}

можно использовать из java как PERMISSION.PAGE.SEE для извлечения значения 1L

. Для достижения простой возможности доступа из EL-выражений я сделал следующее: (Если есть бог кодирования - он, надеюсь, может простить меня: D)

@Named(value="PERMISSION")
public class PERMISSION{
    public static class PAGE{
       public static final Long SEE = 1L; 
       public static final Long EDIT = 2L; 
       public static final Long DELETE = 4L; 
       ...

       //EL Wrapper
       public Long getSEE(){
           return PAGE.SEE;
       }

       public Long getEDIT(){
           return PAGE.EDIT;
       }

       public Long getDELETE(){
           return PAGE.DELETE;
       }
    }

    //EL-Wrapper
    public PAGE getPAGE() {
        return new PAGE();
    }
}

, наконец, EL-Expression для доступа к тому же самому Long становится: #{PERMISSION.PAGE.SEE} - равенство для Java и EL-Access. Я знаю, что это вне всякого соглашения, но оно отлично работает.

2
задан user1723682 6 December 2012 в 16:03
поделиться

1 ответ

Ваша проблема вызвана порядком загрузки required property. Maven загружает каждый пользовательский required property в алфавитном порядке. Вероятно, вы не можете его изменить. Но есть два способа решения вашей проблемы:

  1. Переименование переменных ur, как это: "0_name" "1_groupId" Теперь он сначала спросит вас о имени.
  2. Используйте полная команда maven, передающая только параметр имени mvn archetype:generate -DarchetypeGroupId=?? -DarchetypeArtifactId=?? -DgroupId=?? -DartifactId=?? -Dversion=?? -Dpackage=?? -Dname=?? Замените ?? на допустимые параметры

Надеюсь, это вам поможет.

EDIT: теперь я вижу asked time. Довольно оффтоп, но, возможно, это поможет кому-то еще

5
ответ дан ilovkatie 18 August 2018 в 00:22
поделиться
Другие вопросы по тегам:

Похожие вопросы: