Изучая преимущества и недостатки обоих, мы можем сделать расчетное предположение о том, что подходит для ситуации. Это два основных подхода к реализации обещаний.
Catch Approach
blockquote>some_promise_call() .then(function(res) { logger.log(res) }) .catch(function(err) { logger.log(err) })
Преимущества
- Все ошибки обрабатываются одним уловом block
- Даже выхватывает любое исключение в последующем блоке.
- Цепочка множественных обратных вызовов успеха
Недостатки
- В случае цепочки становится трудно отображать разные сообщения об ошибках.
Подход к успеху / ошибкам
blockquote>some_promise_call() .then(function success(res) { logger.log(res) }, function error(err) { logger.log(err) })
Преимущества
- Вы получаете мелкозернистый контроль ошибок.
- У вас может быть обычная функция обработки ошибок для различных категорий ошибок, таких как ошибка db, ошибка 500 и т. д.
Различия
, вам понадобится еще
- Если вы хотите обработать ошибки, вызванные обратным вызовом успеха
catch
Вы посмотрели проект Apache Felix? Это имеет целую путаницу плагинов, включая плагин пакета , который должен сделать то, что Вы хотите.
кроме того, Вы попробовали эти <addClasspath>
тег с <manifestFile>
? Это должно иметь желаемый эффект слияния пути к классу в Вашу декларацию.
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
...
<configuration>
<archive>
<addClasspath>true</addClasspath>
<manifestFile>src/main/resources/META-INF/MANIFEST.MF</manifestFile>
</archive>
</configuration>
...
</plugin>
Знаток может создать путь к классу в Вашей декларации автоматически: http://maven.apache.org/guides/mini/guide-manifest.html
Это - конфигурация плагина архива Знатока.
Настолько лучше всего, как я могу сказать, Вы не можете добраться точно, которые производят с запятыми и никакими пробелами. И через командную строку и через файл pom.xml, плагин зависимости знатока или CLI волнуется, если Вы указываете пробелы или '' (пустая строка) как замена с также pathSeparator
или fileSeparator
. Так, Вы можете быть вынуждены достигнуть чего-то вроде компромисса. Вы можете
mvn dependency:build-classpath -Dmdep.pathSeparator=":" -Dmdep.prefix='' -Dmdep.fileSeparator=":" -Dmdep.outputFile=classpath
Однако это должно получить Вас полный список, разделенный '::'
вместо просто ','
, но это работает. Если Вы работаете:
mvn dependency:build-classpath -Dmdep.pathSeparator="@REPLACEWITHCOMMA" -Dmdep.prefix='' -Dmdep.fileSeparator="@" -Dmdep.outputFile=classpath
и присоедините это к generate-resources
фаза и фильтр, что ресурс позже путем установки корректного свойства в process-resources
фаза жизненного цикла, необходимо смочь получить просто запятую.
Вы видите полный список опций в: http://maven.apache.org/plugins/maven-dependency-plugin/build-classpath-mojo.html
Вот awk сценарий для передачи по каналу mvn dependency:list
:
mvn dependency:list | awk -f mvnfmt.awk
Вы можете | sort
, если Вы хотите отсортировать по имени, или | tr '\n' ':'
для форматирования его к пути к классу.
mvnfmt.awk
:
BEGIN {
found = 0
}
/The following files have been resolved/ {
found = 1
next
}
/^\[INFO\] \$/ {
print "Empty " found
if (found != 0) found = 0
}
{
if (!found) next
n = split([111], a, " ")
if (n != 2) {
found = 0
next
}
split(a[2], a, ":")
print a[2] "-" a[4] "." a[3]
}
]Возможно, я что-то здесь пропустил, но так как вы уже использовали зависимости от копирования, это звучит так, как будто вам нужен всего лишь список файлов в указанном каталоге.[
] []Ant может сделать это за вас без проблем, так же как и скрипт оболочки.[
].Эта команда создаст дерево зависимостей вашего проекта maven:
$ mvn dependency:tree
Я уверен, что вам понравится результат :-)