Как фиксировать каталог в репозиторий мерзавца?

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

Способ получения версии проекта Maven в JSP-файл основан на подходе, аналогичном приведенному в здесь , за исключением того, что я не создаю файл Version.java, вместо этого у меня просто Maven. запишите версию в файл свойств, такой как «version.properties», например:

version.properties:

app.version = 0.1

, и пусть Maven поместит ее в путь к классам, например, в src / main / resources вот так:

    
    org.apache.maven.plugins
    maven-antrun-plugin
    1.7
    
          
            
              run
            
            generate-sources
            
            
              
                
                
                
                
                
              
            
          
        
  

Также, если вы используете Spring Framework 3.x +, вы можете добавить следующую конфигурацию для загрузки свойств в version.properties, если она существует, в противном случае просто показать «v0.0» или что-то еще:

@Configuration
@EnableWebMvc
@EnableAspectJAutoProxy(proxyTargetClass = true)
public class WebHomeConfig extends WebMvcConfigurerAdapter implements
    ApplicationContextAware {

  private ApplicationContext _appContext;


  /*
   * (non-Javadoc)
   * 
   * @see
   * org.springframework.context.ApplicationContextAware#setApplicationContext
   * (org.springframework.context.ApplicationContext)
   */
  @Override
  public void setApplicationContext(ApplicationContext appContext)
      throws BeansException {
    _appContext = appContext;
  }

  @Bean
  public ViewResolver getViewResolver() {
    InternalResourceViewResolver resolver = new InternalResourceViewResolver();
    resolver.setPrefix("/WEB-INF/views/");
    resolver.setSuffix(".jsp");
    resolver.getAttributesMap().put("appVersion", appVersion);
    return resolver;
  }


  /**
   * Since we don't have any controller logic, simpler to just define
   * controller for page using View Controller. Note: had to extend
   * WebMvcConfigurerAdapter to get this functionality
   * 
   * @param registry
   */
  @Override
  public void addViewControllers(ViewControllerRegistry registry) {
    registry.addViewController("/").setViewName("home");
  }

  /**
   * The application version.
   */
  @Value("${app.version:0.0}")
  protected String appVersion;

  @Bean
  public static PropertySourcesPlaceholderConfigurer configurer() {
    PropertySourcesPlaceholderConfigurer configurer = new PropertySourcesPlaceholderConfigurer();

    configurer.setIgnoreResourceNotFound(true);
    configurer.setLocations(new Resource[] {
        new ClassPathResource("version.properties")});
    return configurer;
  }

}

И, наконец, в вашем /WEB-INF/views/home.jsp вы можете получить что-то вроде:

<%@page contentType="text/html" pageEncoding="UTF-8"%>



    
        
        Service Status
    
    
        

Service API

The service is up and running! (v${appVersion})

И это будет конечно, отобразить как:

Служба запущена и работает! (v0.1)

ПРИМЕЧАНИЕ. Если вы не используете классы JavaConfig для настройки Spring Framework, то вы можете сделать то же самое с конфигурацией Spring XML.

21
задан Aquarius_Girl 30 November 2018 в 06:42
поделиться

2 ответа

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

Git не отслеживает пустые каталоги, он отслеживает файлы и их содержимое.

git init
mkdir foo
touch foo/dummy_empty_file

git add foo
git add foo/dummy_empty_file
git commit -m "adding files"
34
ответ дан 29 November 2019 в 06:42
поделиться

Git не фиксирует пустые каталоги. Сначала в каталогах должны быть файлы.

24
ответ дан 29 November 2019 в 06:42
поделиться
Другие вопросы по тегам:

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