Как сделать номера версий?

Вы можете попробовать что-то вроде:

InputStream stream = this.getClass().getClassLoader().getResourceAsStream("/images/image.jpg");

В вашем JAR-файле у вас может быть структура каталогов:

MyJAR.jar-com (файлы классов здесь) - images ---- image.jpg

158
задан Ian Nelson 5 March 2009 в 16:19
поделиться

15 ответов

[ главный ]. [ незначительный ]. [ выпуск ]. [ сборка ]

главный : Действительно маркетинговое решение. Вы готовы назвать версию 1.0? Компания считает это основной версией, за которую клиентам, возможно, придется заплатить больше, или действительно ли это - обновление текущей основной версии, которая может быть бесплатной? Меньше R& D решение и больше решение продукта.

незначительный : Запускается от 0 каждый раз, когда главный увеличен. +1 для каждой версии, которая получает огласку.

выпуск : Каждый раз Вы поражаете этап разработки и выпускаете продукт, даже внутренне (например, к QA), увеличиваете это. Это особенно важно для коммуникации между командами в организации. Само собой разумеется, никогда не выпускайте тот же 'выпуск' дважды (даже внутренне). Сброс к 0 на несовершеннолетнего ++ или главный ++.

сборка : Может быть пересмотр SVN, я нахожу что работы лучше всего.

252
ответ дан Assaf Lavie 4 November 2019 в 17:24
поделиться

Или использовать Ваше число подрывной деятельности запятой номера версии 'мысли'.. z. B.:

1.0.101//пересмотр 101, выпуск

или 1.0.101-090303//с датой выпуска, я использую это

-3
ответ дан nothrow 4 November 2019 в 17:24
поделиться

Мы используем простой главный minor.julian_date синтаксис.

, Где;

  • главный - Первый выпуск равняется 1 и затем когда мы представляем главные новые возможности или изменения, настолько значительные, они не назад совместимое увеличение это число.
  • незначительный - основные эпохальные выпуски. Для каждой сборки, продвинутой производством это число увеличения.
  • julian_date - Юлианская дата сборка была продвинута к QA.

Пример первого выпуска, продвинутого к QA на 1/15,-> 1.0.015
, Пример первого выпуска, продвинутого к Производству на 3/4,-> 1.1.063

Это не прекрасно, но удобно, поскольку мы продвигаем сборки к QA около ежедневной газеты.

0
ответ дан CmdrTallen 4 November 2019 в 17:24
поделиться

Причина, почему этот вопрос существует, состоит в том, потому что у нас нет сингла согласованным способ сделать управление конфигурацией.

способом, которым мне нравится делать номер версии, является просто инкрементное целое число от 1. Я не хочу много номера версии части, который я должен буду объяснить или документ. И я не хочу использовать число версии SVN, поскольку это потребует некоторого объяснения также.

Вам были бы нужны некоторые сценарии выпуска сверху SVN, чтобы заставить это произойти

0
ответ дан Pyrolistical 4 November 2019 в 17:24
поделиться

У меня есть очень мало опыта в области. Однако вот то, что я сделал бы:

  1. Выбирают схему нумерации изменений и придерживаются его. Будьте последовательны.
  2. Каждое изменение версии должно представить существенное изменение . Как маленький изменение является существенным и уровни изменения, которые отражаются в номере версии, ваше дело.

, Конечно, можно просто использовать svn число пересмотра---как многие другие, предложили!!!

я надеюсь, что это помогает.

0
ответ дан batbrat 4 November 2019 в 17:24
поделиться

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

я предполагаю, что Ваше веб-приложение будет иметь некоторую процедуру развертывания, так, чтобы не каждый пересмотр в Подрывной деятельности был на самом деле опубликован. Так как невозможно с "внешней стороны" (с точки зрения пользователя) определить, когда выпуски делаются, и какому количеству изменений код подвергнется между ними, это делает числа почти случайными. Они будут увеличиваться, и я предполагаю, что возможно предположить приблизительно вид расстояния от сравнения двух изменений, но не очень.

Классические номера версий имеют тенденцию "драматизировать" выпуски, так, чтобы пользователи могли создать некоторое ожидание. Легче думать, что "У меня есть версия 1.0, теперь версия 1.1 отсутствует, добавляя это и что, который звучит интересным", чем думать "вчера, что мы выполнили ТАК пересмотр 2587, сегодня это 3233, это должны быть партии лучше!".

, Конечно, эта драматизация может быть расширена также с компаниями, выбирающими номера версий, которые предназначены для звучания более интересными, чем мотивировано фактическими различиями в продукте, я предполагаю, что движение с числом пересмотра противостоит этому немного.

2
ответ дан unwind 4 November 2019 в 17:24
поделиться

Управление версиями ваше дело; я поместил 1.0 на первую версию, в которой я был уверен. Можно хотеть развить его быстро с другими версиями, так как некоторые поставщики программного обеспечения дали 1.0 плохая репутация.

Вы действительно хотите некоторый способ связать номер версии с точной используемой сборкой, но Вы, вероятно, хотите, чтобы это было хорошо и просто для Ваших конечных пользователей. Рассмотрите использование чисел стандартной версии и меток репозитория SVN с включенным номером версии.

2
ответ дан David Thornley 4 November 2019 в 17:24
поделиться

Мы провели слишком много времени, решая, когда увеличить основную версию. Некоторые магазины редко делали бы это так, у Вас будут выпуски как 1.25.3, и другие сделали бы это, навсегда выпускают предоставление Вас 15.0

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

115-летний. Release.build

    , 110-летний = текущий год
  • , выпуск = упорядочивает # общедоступных выпусков с новой функциональностью - сброс к 1 каждый год
  • сборка = увеличенный для исправлений ошибок и внутренних выпусков

РЕДАКТИРОВАНИЕ

** Теперь, это было для внутреннего приложения, которое постоянно улучшалось **

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

1
ответ дан DJ. 4 November 2019 в 17:24
поделиться

Это довольно популярно в эти дни, чтобы просто использовать число пересмотра Подрывной деятельности.

2
ответ дан mbp 4 November 2019 в 17:24
поделиться

Если это находится в SVN затем, почему бы не использовать число пересмотра SVN?

, Если Вы смотрите в правом нижнем углу этой веб-страницы, Вы будете видеть номер версии Переполнения стека, который является числом пересмотра SVN.

2
ответ дан Dave Webb 4 November 2019 в 17:24
поделиться

"Номера версий" являются вопросом для Вашей системы управления внутренней версии. Номера выпуска являются другим разговором (и должен быть СОХРАНЕН отличающимся).

Придерживаются простой системы выпуска MAJOR.MINOR (как v1.27), где ГЛАВНЫЙ уровень совместимости (версия 2.x является несовместимой с или по крайней мере абсолютно отличается от версии 1.x), и НЕЗНАЧИТЕЛЬНЫЙ Ваши выпуски bugfix или незначительные улучшения. Пока Вы следуете за форматом X.Y, можно также использовать другие системы как YEAR.MONTH (2009.12) или YEAR.RELEASE (2009.3). Но действительно Вы, вероятно, лучше всего придерживаетесь MAJOR.MINOR, если у Вас нет серьезного основания не к.

Определенно не используют ничего, что не соответствует формату X.Y, поскольку он сделает это жестким для дистрибутивов, веб-сайтов объявления, и т.д. для работы с Вами, и что один мог серьезно влиять на популярность Вашего проекта.

ответвления Использования и теги в Вашем (предпочтительно распределенный) система управления версиями для маркировки определенных чисел внутренней версии как касающийся КРУПНЫХ ФИРМ и НЕСОВЕРШЕННОЛЕТНИХ соответственно.

И да, 1.0 должно быть стабильным. Все версии должны быть стабильными, если они не отмеченная альфа, бета или RC. Используйте Альфы для known-broken-and-incomplete. Беты для известного - поврежденный. RCs для "попытки это; Вы, вероятно, определите вещи, которые мы пропустили". Что-либо без одного из них должно (идеально, конечно) быть протестированным, известным хорошее, иметь актуальное руководство, и т.д.

4
ответ дан Lee B 4 November 2019 в 17:24
поделиться

Вовлеките себя некоторое вдохновение из Википедии: "управление версиями программного обеспечения"

Другая "новая" и "относительно популярная" опция Семантическое Управление версиями

Сводка:

, Учитывая номер версии MAJOR.MINOR.PATCH, увеличьте:

  1. Основная версия, когда Вы вносите несовместимые изменения API,
  2. Вспомогательная версия, когда Вы добавляете функциональность назад совместимым способом, и
  3. Версия патча при создании назад совместимых исправлений ошибок.

Дополнительные маркировки для предварительного выпуска и метаданных сборки доступны как расширения формата MAJOR.MINOR.PATCH.

31
ответ дан scable 4 November 2019 в 17:24
поделиться

Я однажды записал тщательно продуманное "руководство по стилю управления версиями" для моего крупного проекта. Проекту не удалось осуществиться, но руководство по стилю все еще доступно онлайн . Это - мое личное мнение, возможно, это является полезным (или вдохновляющим) Вам.

Остерегаются, это - длинный текст и входит в управление версиями компонента по сравнению с управлением версиями продукта и материалом как этот. Это также выражает твердые мнения в отношении некоторых схем управления версиями, популярных в сообществе OSS, но у меня есть они, таким образом, я выражаю их.;-)

я не соглашаюсь с использованием числа пересмотра Подрывной деятельности, например. Вы могли бы хотеть поддержать выпущенную версию при продолжении разработки в СОЕДИНИТЕЛЬНОЙ ЛИНИИ, таким образом, Вы настроите ответвление обслуживания - и Ваше управление версиями числа пересмотра идет коту под хвост.

Редактирование: Как сводка, это различает исходные файлы управления версиями, компоненты и полный продукт. Это использует систему отдельного x.y versoning для компонентов и продукта с хорошей взаимозависимостью между двумя, которая делает трассировку, какая версия компонента принадлежит который тривиальная версия продукта. Это также говорит о том, как обработать альфу / бета / выпуск / циклы патча, не повреждая систему. На самом деле это - принцип работы для целого цикла разработки, таким образом, Вы могли бы хотеть избирательно подойти к выбору.;-)

Редактирование 2: , Поскольку достаточно людей нашло мою статью полезной для создания этого "Хорошим Ответом", я начал работать над статьей снова. PDF и ЛАТЕКСНЫЕ версии теперь доступны, полная перезапись включая лучший язык и объяснительную графику будет следовать, как только я могу найти время. Спасибо за Ваши голоса!

33
ответ дан DevSolar 4 November 2019 в 17:24
поделиться

инкременты x.y.z.g

в g нестабильны. (или RCs), инкременты в z являются стабильными и средними исправлениями ошибок.
инкременты в y являются стабильными и средними новыми возможностями.
инкременты в x являются стабильной, главной версией без 100%-й обратной совместимости.

65
ответ дан Itay Moav -Malimovka 4 November 2019 в 17:24
поделиться

Немного полезной информации здесь:

Когда Изменение версий файла / сборки

Прежде всего, версии файлов и версий сборок не обязательно должны совпадать. Я рекомендую, чтобы версии файлов менялись с каждой сборкой. Но не меняйте версии сборок с каждой сборкой только для того, чтобы вы могли различить две версии одного и того же файла; используйте версию файла для этого. Решение о том, когда менять версию сборки, требует некоторого обсуждения типов сборок, которые следует учитывать: доставка и не доставка.

Сборки без доставки В целом, я рекомендую сохранять версии сборок, не относящихся к поставке, одинаковыми между сборками при доставке. Это позволяет избежать проблем с загрузкой сборок со строгими именами из-за несоответствия версий. Некоторые люди предпочитают использовать политику издателя для перенаправления новых версий сборок для каждой сборки. Однако я рекомендую это делать для сборок без доставки: это не позволяет избежать всех проблем с загрузкой. Например, если партнер скопирует ваше приложение, он может не знать, как установить политику издателя. Тогда ваше приложение будет сломано для них, даже если оно отлично работает на вашем компьютере.

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

Shipping Builds Что касается того, стоит ли менять эту версию для доставки сборок, это зависит от того, как вы хотите, чтобы привязка работала для конечных пользователей. Вы хотите, чтобы эти сборки были рядом или на месте? Много ли изменений между двумя сборками? Они собираются сломать некоторых клиентов? Вы заботитесь о том, чтобы это сломало их (или вы хотите заставить пользователей использовать ваши важные обновления)? Если да, вам следует рассмотреть возможность увеличения версии сборки. Но, опять же, учтите, что выполнение этого слишком много раз может засорять диск пользователя устаревшими сборками.

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

0
ответ дан Gulzar Nazim 23 November 2019 в 21:38
поделиться
Другие вопросы по тегам:

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