Другое событие NullPointerException
возникает, когда объявляется массив объектов, а затем сразу же пытается разыменовать его внутри.
String[] phrases = new String[10];
String keyPhrase = "Bird";
for(String phrase : phrases) {
System.out.println(phrase.equals(keyPhrase));
}
Этот конкретный NPE можно избежать, если порядок сравнения отменяется ; а именно, использовать .equals
для гарантированного непустого объекта.
Все элементы внутри массива инициализируются их общим начальным значением ; для любого типа массива объектов, это означает, что все элементы null
.
Вы должны инициализировать элементы в массиве перед доступом или разыменованием их.
String[] phrases = new String[] {"The bird", "A bird", "My bird", "Bird"};
String keyPhrase = "Bird";
for(String phrase : phrases) {
System.out.println(phrase.equals(keyPhrase));
}
Проект MSBuildCommunityTasks имеет несколько задач MSBuild, которые могут сделать то, что Вы ищете включая Слияние и JSCompress.
Вы могли добавить их в свой проект MSBuild в цели AfterBuild, чтобы позволить проекту выполнить это действие каждый раз, когда проект разрабатывается, и ничто никогда не было бы вне синхронизации. Ваше веб-приложение могло затем сослаться на уплотненную версию для выполненного, но разработчики отредактируют полные версии.
Ничто иное не было бы необходимо на сервере кроме блока задач сообщества MSBuild. Можно поместить этот блок в собственное исходное дерево и ссылку оттуда, и сборка CI должна получить тот блок и все, в чем это нуждается, когда это создает.
Другой JS (и CSS!) библиотека сжатия для MSBuild:
http://www.codeplex.com/YUICompressor
Это - порт.NET основанного на Java компрессор Yahoo! .