Trump says he had to sign it because of military spending. Any reason to think this is not correct?
Yes there is reason to know this is not correct. Omnibus bills are a gimmick by the party in power, currently the Republicans. Trump could have vetoed this bill and forced Congress to send him a separate appropriations bill for the defense department which is the normal way of appropriating: 12 spending bills for each major department of government. That’s as close to a line item veto as we can get.